我想在快捷方式+Action
上触发哪个触发器Ctrl↓</kbd>.
我能做的是有快捷方式↓</kbd>:
Action {
shortcut: StandardKey.MoveToNextLine
enabled: true
onTriggered: console.log('Down pressed')
}
但是我如何定义快捷键Ctrl+↓</kbd>?
我想在快捷方式+Action
上触发哪个触发器Ctrl↓</kbd>.
我能做的是有快捷方式↓</kbd>:
Action {
shortcut: StandardKey.MoveToNextLine
enabled: true
onTriggered: console.log('Down pressed')
}
但是我如何定义快捷键Ctrl+↓</kbd>?
从你的文档中shortcut
读到:
绑定到操作的快捷方式。键序列可以是字符串或标准键。
从QKeySequence
toString()
方法文档中,您还了解到:
根据格式返回键序列的字符串表示形式。
例如,值 Qt::CTRL+Qt::Key_O 会导致“ Ctrl+O ”。如果按键序列有多个按键代码,则每个按键代码在返回的字符串中用逗号分隔,例如“Alt+X, Ctrl+Y, Z”。字符串“Ctrl”、“Shift”等在“QShortcut”上下文中使用 QObject::tr() 进行翻译。
因此,使用键名组合而不是StandardKey
这样:
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.3
ApplicationWindow {
id: rectangle
width: 200
height: 200
visible: true
Action {
shortcut: "Ctrl+Down"
enabled: true
onTriggered: console.log('Down pressed [ctrl hold]')
}
}
使用类似的东西:
Keys.onPressed: {
if ((event.key == Qt.Key_Down) && (event.modifiers & Qt.ControlModifier))
doSomething();
}