我有一个QGraphicPixmapItem作为我程序中的游戏片段。它有三个主要状态:红色,蓝色和空白。问题是,当空白时,该部分不可点击。
当红色时,我将该片段的像素图更改为红色,模糊的类似于棋子的png。当蓝色时,我也这样做。当空白时,我使用完全透明的png。
这个空白,完全透明的像素图是为什么(据我所知)事件正在通过它。当我通过将像素图更改为红色检查器来重新编写它,然后手动将不透明度重置为零时,同样的事情发生了。然而,当我在新红色片段中留下0.01不透明度时,事件就会触发。
显然,透明意味着事件会通过您传递给QGraphicPixmapItem。如何更改并使其接收事件?或者我的结论是错的?
答案 0 :(得分:0)
您所看到的是shapeMode所描述的正确行为。
您可以将其更改为使用QGraphicsPixmapItem :: BoundingRectShape,正如文档所述: -
...没有考虑像素图上的任何透明区域。
如果你仍然需要遵守透明度,那么你可以从QGraphicsPixmap项继承并重新实现shape函数以将不透明度设置为0.1,调用基类形状函数并在之后将其设置回来。