Сочетание клавиш Ctrl+ Вниз в действии

Я хотел бы иметь Action который срабатывает по сочетанию клавиш Ctrl+.

То, что я смог сделать, это ярлык для :

Action {
    shortcut: StandardKey.MoveToNextLine
    enabled: true
    onTriggered: console.log('Down pressed')
}

Но как я могу определить сочетание клавиш Ctrl+?

2 ответа

Решение

Из документации shortcut Вы читаете это:

Ярлык привязан к действию. Последовательность клавиш может быть строкой или стандартным ключом.

От QKeySequencetoString() Метод документации вы также прочитали, что:

Возвращает строковое представление последовательности клавиш в зависимости от формата.

Например, значение 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();
}
Другие вопросы по тегам