我的程序中有一个QGraphicPixmapItem作为游戏片段。它具有三种主要状态:红色,蓝色和空白。问题是,空白时,该部分不可单击。
当为红色时,我将作品的像素图更改为一个红色,模糊地类似于方格图的png。蓝色时,我也这样做。当为空白时,我使用完全透明的png。
此空白的,完全透明的像素图是(据我所知)事件通过的原因。当我通过将像素图更改为红色检查器来重做它,然后手动将不透明度重置为零时,发生了同样的事情。但是,当我在新红块中留下0.01的不透明度时,事件就触发了。
显然,透明意味着事件将通过您传递给QGraphicPixmapItem。如何更改它并使其接收事件?还是我的结论不对?
您所看到的是shapeMode描述的正确行为。
您可以更改它以使用QGraphicsPixmapItem :: BoundingRectShape,根据文档所述,它是:
...不考虑像素图上的任何透明区域。
如果仍然需要遵守透明度,则可以从QGraphicsPixmap项继承并重新实现shape函数以将不透明度设置为0.1,调用基类shape函数,然后再将其重新设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句