• 6076阅读
  • 3回复

QGraphicsScene里增加多个QWidget怎么在mouseMoveEvent当中判断当前是哪个QWidget范围里呢? [复制链接]

上一主题 下一主题
离线marlene
 
只看楼主 倒序阅读 楼主  发表于: 2010-08-09
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
QGraphicsScene里增加多个QWidget怎么在mouseMoveEvent当中判断当前鼠标所在是哪个QWidget范围里呢?


如果是QGraphicsItem的话,可以通过QGraphicsItem *item = itemAt (event->pos().x(), event->pos().y());但如果增加的是QWidget的话,没找到有类似的函数。

谢谢!
离线marlene
只看该作者 1楼 发表于: 2010-08-09
BookMarkItem *item = qobject_cast<BookMarkItem*> (childAt(event->pos().x(), event->pos().y()));


这样试了可还是不行,view也是QWidget,用childAt来判断鼠标当前选中的widget怎么会不行呢?

BookMarkItem里面包含一个QLabel和一个QPushButton,我已经把BookMarkItem设置了setMouseTracking(true);属性。

哪位知道问题出在哪呢?谢谢!
离线sillyball
只看该作者 2楼 发表于: 2010-08-09
itemAt可以吧?
QGraphicsProxyWidge也是作为item来处理的
离线marlene
只看该作者 3楼 发表于: 2010-08-09
谢谢sillyball,确实是,把scene->addWidget返回的QGraphicsProxyWidge保存起来,然后就可当成item处理了,也就可以用itemAt了。呵呵。
快速回复
限100 字节
 
上一个 下一个