我正在使用 Qt/QML 为 Windows 7 开发触摸应用程序。终端用户设备具有 Windows 7 的原生触摸行为,即:当触摸屏幕时,在最后触摸的点上会出现一个点,当结束物理触摸时,Windows 会将该点放在现在触摸的点上并运行在点击事件中。
与从标准 Windows 鼠标使用中知道的行为相比,这会导致在单击某个按钮时立即出现不同的行为:鼠标用户会期望当鼠标按钮时按钮将颜色更改为按下时的颜色下降,而当鼠标按钮上升时颜色再次变为默认颜色。
在我的应用程序中,我希望有一种自定义的触摸反馈方式:应该使用更改的按钮颜色来标记当前被触摸的内容,在实际物理触摸开始时模仿“鼠标下降”并模仿“鼠标上升”当实际的身体接触结束时。
我的应用程序将全屏运行,因此实际的可能性是在应用程序启动时更改系统的行为,并在应用程序结束时将其更改回默认值。
这种行为实际上与我所知道的所有 Android 设备上的标准行为相同。
我搜索了所有 MouseArea 和 MultiPointTouchArea 元素,试图找到一种使点击反应行为与标准行为不同的方法。然而,我什至没有找到捕捉实际触摸开始的方法......我想在触摸开始时发生的所有事情实际上在触摸结束时发生。
编辑:如果我使用 QML 按钮或 mousearea 加上 MouseArea.pressed 属性并不重要:在手指离开触摸并且 onClicked() 甚至被调用之前,什么都不会被“按下”。
可能相关: Adobe AIR:触摸屏没有正确触发鼠标按下事件- 但我没有找到从原生 Qt 应用程序访问 Multitouch.inputMode (在第一个回复中提到)等功能的方法。
如何为我的应用程序实现所描述的行为?