即使在 Qt 应用程序中,是否也可以接收鼠标单击,对其进行评估,并在必要时让它落入 Qt 应用程序窗口下方可能发生的任何内容?
注意Qt::WA_TransparentForMouseEvents
在传递点击之前不利于对其进行评估。
而且由于点击评估包含了一些动态逻辑,因此也不适用于设置静态遮罩,除此之外还会产生视觉影响。
理想情况下,我想要一种有选择地允许鼠标单击以平台可移植方式穿过应用程序窗口的方法,最好是从 QML 中进行,而不需要引入小部件模块,或者至少不涉及深入研究私有 C++ 内部 API 。
Qt::WA_TransparentForMouseEvents
用于过滤掉鼠标事件。这个名字有点用词不当:它允许本来会消耗鼠标事件的小部件,而不是消耗它们。例如。您可以使按钮不注意到任何鼠标事件。如果您正在编写自定义小部件,则永远不需要此属性,因为您需要检查鼠标事件而不是处理它们:它们会自动传递给父小部件。
但这一切都没有多大关系,因为WA_
属性适用于小部件,对窗口不起作用。您完全想要其他东西:使窗口本身对于输入透明。因此,在 QML 中:
window.flags = window.flags | Qt.WindowTransparentForInput
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)