QML forwards/back 鼠标按钮处理
QML forwards/back mouse buttons handling
我正在尝试让我的 QML 应用程序对某些鼠标上的 forwards/back 按钮(有时标记为按钮 4/5)做出反应。似乎鼠标 area/event 只允许三个主要鼠标按钮上的信号。
有什么方法可以在 QML 中处理这些按钮吗?
如果您查看 predefined mouse buttons you'll see that there is a ForwardButton and BackButton. The only "trick" you need to listen for these buttons in a QML MouseArea is to set the acceptedButtons 属性 的列表。
您可以将其设置为仅监听前进和后退:
acceptedButtons: Qt.ForwardButton | Qt.BackButton
或者您可以只监听任何鼠标按钮:
acceptedButtons: Qt.AllButtons
将它们放在一起,您的 MouseArea 可能看起来像这样:
MouseArea {
acceptedButtons: Qt.AllButtons
onClicked: {
if (mouse.button == Qt.BackButton) {
console.log("Back button");
} else if (mouse.button == Qt.ForwardButton) {
console.log("Forward button")
}
}
}
我正在尝试让我的 QML 应用程序对某些鼠标上的 forwards/back 按钮(有时标记为按钮 4/5)做出反应。似乎鼠标 area/event 只允许三个主要鼠标按钮上的信号。
有什么方法可以在 QML 中处理这些按钮吗?
如果您查看 predefined mouse buttons you'll see that there is a ForwardButton and BackButton. The only "trick" you need to listen for these buttons in a QML MouseArea is to set the acceptedButtons 属性 的列表。
您可以将其设置为仅监听前进和后退:
acceptedButtons: Qt.ForwardButton | Qt.BackButton
或者您可以只监听任何鼠标按钮:
acceptedButtons: Qt.AllButtons
将它们放在一起,您的 MouseArea 可能看起来像这样:
MouseArea {
acceptedButtons: Qt.AllButtons
onClicked: {
if (mouse.button == Qt.BackButton) {
console.log("Back button");
} else if (mouse.button == Qt.ForwardButton) {
console.log("Forward button")
}
}
}