我遇到的问题是我的QGraphicsItem
并不总是用鼠标执行正确的命中检测。我已经将QGrahicsItem
子类化,并覆盖了shape()
方法。我的shape()
方法计算围绕该线的多边形。我的boudingRect()
函数计算一个完全包围该行的框。我附上了两个截图。第一个显示以蓝色突出显示的行,表示已触发悬停事件。第二个显示鼠标向右略微移动,但仍然在shape()
和boundingRect()
内,但悬停事件没有触发。关于我做错什么的任何想法?
我还应该注意,如果我移动线的端点,命中检测通常会开始正常工作。它何时破裂似乎有些随意。
注意:线条周围的多边形是shape()
,周围的矩形是boundingRect()
更新
这似乎是boundingRect()
的问题,因为我放大了非工作/部分工作线。该行将突然消失,就好像它的boundingRect()不再在视口中一样,但是,很明显不是这种情况,就像它消失之前的边界矩形可见。