QGraphicsScene未执行正确的命中检测

时间:2014-04-24 13:59:40

标签: qt qgraphicsitem qgraphicsscene

我遇到的问题是我的QGraphicsItem并不总是用鼠标执行正确的命中检测。我已经将QGrahicsItem子类化,并覆盖了shape()方法。我的shape()方法计算围绕该线的多边形。我的boudingRect()函数计算一个完全包围该行的框。我附上了两个截图。第一个显示以蓝色突出显示的行,表示已触发悬停事件。第二个显示鼠标向右略微移动,但仍然在shape()boundingRect()内,但悬停事件没有触发。关于我做错什么的任何想法?

我还应该注意,如果我移动线的端点,命中检测通常会开始正常工作。它何时破裂似乎有些随意。

注意:线条周围的多边形是shape(),周围的矩形是boundingRect() Hover event fired.

Hover event not fired.

更新 这似乎是boundingRect()的问题,因为我放大了非工作/部分工作线。该行将突然消失,就好像它的boundingRect()不再在视口中一样,但是,很明显不是这种情况,就像它消失之前的边界矩形可见。

0 个答案:

没有答案