我有一个QGraphicsItem剪辑其子项(我启用了它的ItemClipsChildrenToShape标志)。我注意到剪裁使得将鼠标事件分配给子项的方法不精确:它们的边界矩形而不是项目的精确形状,而是用于检测哪个项位于特定位置的边界矩形,以便子项在其整个边界矩形中接收鼠标事件。未启用裁剪时,它可以按预期工作。

将子项的边界区域粒度设置为1.0并没有帮助。我正在使用qt 4.5.0。

我测试过此问题的程序可在http://pastebin.com/m3d0cfb53中获得

我在qt文档中找不到有关此行为的任何信息。我想知道这是否是qt中的错误,以及是否有解决方法。

最佳答案

我知道这是一个老问题,但是我遇到了同样的问题。

QGraphicsItems的文档说:



因此,用QPainterPath覆盖shape()函数可以解决我的问题。

09-08 11:39