使用 QtQuick 2.9 在按钮单击时检索使用的修饰符
Retrieving the used modifiers on button click with QtQuick 2.9
我有一个在 QtQuick 2.9 上运行的纯 QML 应用程序。
我正在尝试检索鼠标单击期间使用的键盘修饰符。
从 QtQuick 2.15 开始,我可以这样写:
Button {
text: "button"
onClicked: {
if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)) {
doSomething();
} else {
doSomethingElse();
}
}
}
但是 MouseEvent 在 QtQuick 2.9 中不可用。
还有什么选择?
Button 的 clicked
信号不提供 MouseEvent(无论您使用的是哪个版本的 Qt)。单击信号也可以通过键盘生成,因此提供 MouseEvent 没有意义。您将需要创建一个 MouseArea 并自己处理事件以执行您想要的操作。
Button {
id: button
MouseArea {
id: mouse
anchors.fill: parent
onPressed: {
if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)) {
doSomething();
} else {
doSomethingElse();
}
}
}
}
我有一个在 QtQuick 2.9 上运行的纯 QML 应用程序。
我正在尝试检索鼠标单击期间使用的键盘修饰符。
从 QtQuick 2.15 开始,我可以这样写:
Button {
text: "button"
onClicked: {
if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)) {
doSomething();
} else {
doSomethingElse();
}
}
}
但是 MouseEvent 在 QtQuick 2.9 中不可用。
还有什么选择?
Button 的 clicked
信号不提供 MouseEvent(无论您使用的是哪个版本的 Qt)。单击信号也可以通过键盘生成,因此提供 MouseEvent 没有意义。您将需要创建一个 MouseArea 并自己处理事件以执行您想要的操作。
Button {
id: button
MouseArea {
id: mouse
anchors.fill: parent
onPressed: {
if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)) {
doSomething();
} else {
doSomethingElse();
}
}
}
}