Obsolete Members for MouseEvent
QML 类型MouseEvent的以下成员已被弃用。提供它们是为了让旧源代码继续工作。我们强烈建议不要在新代码中使用它们。
属性
- source : int
(deprecated in 6.2)
属性文档
source : int |
自 QtQuick 6.2 起,该属性已被弃用。我们强烈建议不要在新代码中使用它。
使用acceptedDevices 设置的输入处理程序。
该属性包含鼠标事件的来源。
鼠标事件源可用于区分真正的鼠标事件和人工鼠标事件。在使用其他指向设备(如触摸屏和图形平板电脑)时,如果应用程序没有使用实际的触摸或平板电脑事件,则鼠标事件可能是由操作系统或 Qt 本身合成的。
该值可以是
- Qt.MouseEventNotSynthesized - 最常用的值。在有此类信息的平台上,该值表示该事件是来自系统的真正鼠标事件。
- Qt.MouseEventSynthesizedBySystem - 表示鼠标事件是由平台的触摸或平板电脑事件合成的。
- Qt.MouseEventSynthesizedByQt - 表示鼠标事件是 Qt 根据未处理的触摸或平板电脑事件合成的。
- Qt.MouseEventSynthesizedByApplication - 表示鼠标事件是由应用程序合成的。这样就可以将应用程序生成的鼠标事件与来自系统或由 Qt 合成的鼠标事件区分开来。
例如,只对来自实际鼠标的事件做出反应:
MouseArea { onPressed: (mouse)=> { if (mouse.source !== Qt.MouseEventNotSynthesized) mouse.accepted = false } onClicked: doSomething() }
如果按压事件的处理程序拒绝接受该事件,它将被进一步传播,然后另一个 Item underneath 可以处理来自触摸屏的合成事件。例如,如果下面使用的是 Flickable(而MouseArea 不是 Flickable 的子项),那么MouseArea 可以用一种方式处理真正的鼠标事件,同时允许触摸事件通过下面的 Flickable,这样就可以保留在触摸屏上滑动的功能。在这种情况下,通过鼠标拖动 Flickable 的功能将丧失,但这并不妨碍 Flickable 接收鼠标滚轮事件。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.