• 6416阅读
  • 2回复

[提问]QGraphicsView mouse事件传递[已解决] [复制链接]

上一主题 下一主题
离线bqlf1907
 

只看楼主 正序阅读 楼主  发表于: 2011-08-05
只要重载QGraphicsView mouse方法,其底下的QGraphicsItem就无法接受mouse事件,比如,设置了移动却无法移动。去掉重载QGraphicsView mouse方法 就可以了。
没有什么办法即可以重载重载QGraphicsView mouse方法 ,也可以正常移动item


其实我只是想获取选中哪个item,所以我想在QGraphicsView 重载mousePress方法
void ChooseMapSpriteView::mousePressEvent(QMouseEvent *event)
{    
         MapSpriteItem *item = (MapSpriteItem *)this->scene()->itemAt(event->pos().x(),event->pos().y());
}
只要重载这个方法,item就不能移动了。

离线bqlf1907

只看该作者 2楼 发表于: 2011-08-05
引用第1楼dbzhang800于2011-08-05 11:14发表的  :


非常感谢~~~终于可以了!!!!!昨晚憋了一个晚上.
离线dbzhang800

只看该作者 1楼 发表于: 2011-08-05
引用楼主bqlf1907于2011-08-05 10:57发表的 QGraphicsView mouse事件传递 :
只要重载QGraphicsView mouse方法,其底下的QGraphicsItem就无法接受mouse事件,
void ChooseMapSpriteView::mousePressEvent(QMouseEvent *event)
{    
         MapSpriteItem *item = (MapSpriteItem *)this->scene()->itemAt(event->pos().x(),event->pos().y());
         QGraphicsView::mousePressEvent(event);
}
.......


快速回复
限100 字节
 
上一个 下一个