Сочетание клавиш Ctrl+ Вниз в действии
Я хотел бы иметь Action
который срабатывает по сочетанию клавиш Ctrl+↓.
То, что я смог сделать, это ярлык для ↓:
Action {
shortcut: StandardKey.MoveToNextLine
enabled: true
onTriggered: console.log('Down pressed')
}
Но как я могу определить сочетание клавиш Ctrl+↓?
2 ответа
Из документации shortcut
Вы читаете это:
Ярлык привязан к действию. Последовательность клавиш может быть строкой или стандартным ключом.
От QKeySequence
toString()
Метод документации вы также прочитали, что:
Возвращает строковое представление последовательности клавиш в зависимости от формата.
Например, значение Qt::CTRL+Qt::Key_O приводит к "Ctrl + O". Если последовательность клавиш имеет несколько кодов клавиш, каждый из них разделяется запятыми в возвращаемой строке, например "Alt+X, Ctrl+Y, Z". Строки "Ctrl", "Shift" и т. Д. Транслируются с помощью QObject::tr() в контексте "QShortcut".
Следовательно, используйте комбинацию имени ключа вместо 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();
}