QML 键盘快捷键单击按钮
QML Keyboard Shortcut Click Button
我正在尝试向我的 QML 添加键盘快捷键,但我很难在不重复逻辑的情况下让它工作。下面是代码,
Controls.Button {
id:sendAction
Shortcut {
sequence: "Ctrl+Return"
onActivated: parent.trigger()
}
onPressed: {call function}
}
如果我重复调用该函数,键盘快捷键可以工作,但是 parent.trigger()
它会失败,触发器不是按钮的 属性。我已经尝试查找可以在快捷方式中调用哪些函数来触发父级,但文档非常简单。本质上我需要的是添加到 onActivated
中以触发 onPressed
而无需重复函数调用的内容。
你试过按下信号了吗?
激活:parent.pressed()
https://doc.qt.io/qt-5/qml-qtquick-controls2-abstractbutton.html#pressed-signal
用下面的代码解决了。
Item {
Shortcut{
id: sendShortcut
sequences: ["Ctrl+Enter", "Ctrl+Return"]
onActivated: sendAction.action.trigger()
}
}
Controls.Button {
id:sendAction
action: Controls.Action {
onTriggered{
call function
}
}
onPressed: action.trigger()
}
我正在尝试向我的 QML 添加键盘快捷键,但我很难在不重复逻辑的情况下让它工作。下面是代码,
Controls.Button {
id:sendAction
Shortcut {
sequence: "Ctrl+Return"
onActivated: parent.trigger()
}
onPressed: {call function}
}
如果我重复调用该函数,键盘快捷键可以工作,但是 parent.trigger()
它会失败,触发器不是按钮的 属性。我已经尝试查找可以在快捷方式中调用哪些函数来触发父级,但文档非常简单。本质上我需要的是添加到 onActivated
中以触发 onPressed
而无需重复函数调用的内容。
你试过按下信号了吗?
激活:parent.pressed()
https://doc.qt.io/qt-5/qml-qtquick-controls2-abstractbutton.html#pressed-signal
用下面的代码解决了。
Item {
Shortcut{
id: sendShortcut
sequences: ["Ctrl+Enter", "Ctrl+Return"]
onActivated: sendAction.action.trigger()
}
}
Controls.Button {
id:sendAction
action: Controls.Action {
onTriggered{
call function
}
}
onPressed: action.trigger()
}