我有一个QGraphicsItem剪辑其子项(我启用了它的ItemClipsChildrenToShape标志)。我注意到剪裁使得将鼠标事件分配给子项的方法不精确:它们的边界矩形而不是项目的精确形状,而是用于检测哪个项位于特定位置的边界矩形,以便子项在其整个边界矩形中接收鼠标事件。未启用裁剪时,它可以按预期工作。
将子项的边界区域粒度设置为1.0并没有帮助。我正在使用qt 4.5.0。
我测试过此问题的程序可在http://pastebin.com/m3d0cfb53中获得
我在qt文档中找不到有关此行为的任何信息。我想知道这是否是qt中的错误,以及是否有解决方法。
最佳答案
我知道这是一个老问题,但是我遇到了同样的问题。
QGraphicsItems的文档说:
因此,用QPainterPath覆盖shape()
函数可以解决我的问题。