如何启用透明的QGraphicsPixmapItem来接收鼠标单击事件?

谭咏麟

我的程序中有一个QGraphicPixmapItem作为游戏片段。它具有三种主要状态:红色,蓝色和空白。问题是,空白时,该部分不可单击。

当为红色时,我将作品的像素图更改为一个红色,模糊地类似于方格图的png。蓝色时,我也这样做。当为空白时,我使用完全透明的png。

此空白的,完全透明的像素图是(据我所知)事件通过的原因。当我通过将像素图更改为红色检查器来重做它,然后手动将不透明度重置为零时,发生了同样的事情。但是,当我在新红块中留下0.01的不透明度时,事件就触发了。

显然,透明意味着事件将通过您传递给QGraphicPixmapItem。如何更改它并使其接收事件?还是我的结论不对?

黑暗骑士

您所看到的是shapeMode描述的正确行为

您可以更改它以使用QGraphicsPixmapItem :: BoundingRectShape,根据文档所述,它是:

...不考虑像素图上的任何透明区域。

如果仍然需要遵守透明度,则可以从QGraphicsPixmap项继承并重新实现shape函数以将不透明度设置为0.1,调用基类shape函数,然后再将其重新设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用JavaScript模拟鼠标单击?

如何在Java中检测Image对象上的鼠标单击事件?

如何过滤掉鼠标单击释放事件?

如何不混淆Windows窗体中的鼠标单击和鼠标按下事件?

在jQuery中启用和禁用鼠标单击事件

如何在嵌套拆分窗格的分隔板上检测鼠标单击事件?

编码的用户界面-鼠标单击事件后如何捕获图像

如何在TableView JavaFX上执行鼠标单击事件

如何通过鼠标单击启用禁用的文本框vb.net

单击表单下方的元素的鼠标单击触发事件

如何从鼠标单击事件中调用绘画事件?

如何抑制Windows中的全局鼠标单击事件?

如何调整鼠标单击的反跳

通过形状传递鼠标单击事件

如何禁用JTable鼠标单击?

如何捕获鼠标单击事件以重叠ItemsControl

Extjs DatePicker:如何使用鼠标单击在禁用日期上启用“单击/选择”?

Boost Signals2:如何注册鼠标单击和按键等事件?

如何打破鼠标单击事件的循环

如何在流星/ javascript中禁用禁用的html元素上的鼠标单击事件

释放鼠标单击后如何倒数

如何使Javascript程序模拟鼠标单击?

鼠标单击事件后刷新绘图

透明表单上的鼠标单击事件,而不会中断后台应用程序上的事件

如何在可可中获取鼠标单击事件元素

如何允许鼠标单击靠近元素?

如何使用 C#.net 将鼠标单击事件添加到图片框

使用 Three.js 投射一个对象以启用鼠标单击事件

Angular - 如何根据条件禁用特定 DIV 之外的鼠标单击事件?