Spec-Zone.ru › Qt

Тип QML Keys

Обеспечивает обработку нажатий клавиш для элементов. Подробнее...

Заявление об импорте: import QtQuick
  • Список всех членов, включая унаследованные

Свойства

  • enabled : bool
  • forwardTo : список<Item>
  • priority : перечисление

Сигналы

  • asteriskPressed(KeyEvent event)
  • backPressed(KeyEvent event)
  • backtabPressed(KeyEvent event)
  • callPressed(KeyEvent event)
  • cancelPressed(KeyEvent event)
  • context1Pressed(KeyEvent event)
  • context2Pressed(KeyEvent event)
  • context3Pressed(KeyEvent event)
  • context4Pressed(KeyEvent event)
  • deletePressed(KeyEvent event)
  • digit0Pressed(KeyEvent event)
  • digit1Pressed(KeyEvent event)
  • digit2Pressed(KeyEvent event)
  • digit3Pressed(KeyEvent event)
  • digit4Pressed(KeyEvent event)
  • digit5Pressed(KeyEvent event)
  • digit6Pressed(KeyEvent event)
  • digit7Pressed(KeyEvent event)
  • digit8Pressed(KeyEvent event)
  • digit9Pressed(KeyEvent event)
  • downPressed(KeyEvent event)
  • enterPressed(KeyEvent event)
  • escapePressed(KeyEvent event)
  • flipPressed(KeyEvent event)
  • hangupPressed(KeyEvent event)
  • leftPressed(KeyEvent event)
  • menuPressed(KeyEvent event)
  • noPressed(KeyEvent event)
  • pressed(KeyEvent event)
  • released(KeyEvent event)
  • returnPressed(KeyEvent event)
  • rightPressed(KeyEvent event)
  • selectPressed(KeyEvent event)
  • shortcutOverride(KeyEvent event)
  • spacePressed(KeyEvent event)
  • tabPressed(KeyEvent event)
  • upPressed(KeyEvent event)
  • volumeDownPressed(KeyEvent event)
  • volumeUpPressed(KeyEvent event)
  • yesPressed(KeyEvent event)

Подробное описание

Все визуальные примитивы поддерживают обработку нажатий клавиш через присоединенное свойство Keys. Нажатия клавиш обрабатываются через сигналы onPressed и onReleased.

Сигналы имеют параметр KeyEvent, именованный event, который содержит детали события. Если нажатие клавиши обработано, event.accepted должно быть установлено в true, чтобы предотвратить распространение события вверх по иерархии элементов.

Пример использования

Следующий пример показывает, как можно использовать общий обработчик onPressed для проверки определенной клавиши; в данном случае, левой клавиши курсора:

Item {
    anchors.fill: parent
    focus: true
    Keys.onPressed: (event)=> {
        if (event.key == Qt.Key_Left) {
            console.log("move left");
            event.accepted = true;
        }
    }
}

Некоторые клавиши могут альтернативно обрабатываться через специальные сигналы, например, onSelectPressed. Эти обработчики автоматически устанавливают event.accepted в true.

Item {
    anchors.fill: parent
    focus: true
    Keys.onLeftPressed: console.log("move left")
}

См. Qt.Key для списка кодов клавиатуры.

Приоритеты обработки нажатий клавиш

Присоединенное свойство Keys может быть настроено для обработки событий нажатия клавиш до или после элемента, к которому оно прикреплено. Это позволяет перехватывать события, чтобы переопределить стандартное поведение элемента или действовать как резервный вариант для клавиш, не обработанных элементом.

Если priority равно Keys.BeforeItem (по умолчанию), порядок обработки событий нажатия клавиш следующий:

  1. Элементы, указанные в forwardTo
  2. специфические обработчики клавиш, например, onReturnPressed
  3. обработчики onPressed, onReleased
  4. обработка нажатий клавиш специфичная для элемента, например, TextInput
  5. родительский элемент

Если priority равно Keys.AfterItem, порядок обработки событий нажатия клавиш следующий:

  1. обработка нажатий клавиш специфичная для элемента, например, TextInput
  2. Элементы, указанные в forwardTo
  3. специфические обработчики клавиш, например, onReturnPressed
  4. обработчики onPressed, onReleased
  5. родительский элемент

Если событие принимается на любом из вышеуказанных шагов, распространение нажатия клавиши останавливается.

См. также KeyEvent и присоединенное свойство KeyNavigation.

Документация по свойствам

enabled : bool

Этот флаг включает обработку нажатий клавиш, если равен true (по умолчанию); в противном случае никакие обработчики нажатий клавиш не будут вызваны.

forwardTo : список<Item>

Это свойство предоставляет способ перенаправить нажатия клавиш, отпускания клавиш и ввод с клавиатуры, поступающие от методов ввода, в другие элементы. Это может быть полезно, когда вы хотите, чтобы один элемент обрабатывал некоторые клавиши (например, стрелки вверх и вниз), а другой элемент обрабатывал другие клавиши (например, стрелки влево и вправо). Как только элемент, которому были перенаправлены клавиши, принимает событие, оно больше не перенаправляется элементам, которые следуют в списке.

В этом примере события нажатия клавиш перенаправляются двум спискам:

Item {
    ListView {
        id: list1
        // ...
    }
    ListView {
        id: list2
        // ...
    }
    Keys.forwardTo: [list1, list2]
    focus: true
}

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

priority : перечисление

Это свойство определяет, обрабатываются ли нажатия клавиш до или после обработки нажатий клавиш самого присоединенного элемента.

  • Keys.BeforeItem (по умолчанию) - обрабатывать события нажатия клавиш до обычной обработки нажатий клавиш элементом. Если событие принимается, оно не будет передаваться элементу.
  • Keys.AfterItem - обрабатывать события нажатия клавиш после обычной обработки нажатий клавиш элементом. Если элемент принимает событие нажатия клавиши, оно не будет обработано обработчиком присоединенного свойства Keys.

См. также Приоритеты обработки нажатий клавиш.

Документация по сигналам

asteriskPressed(KeyEvent event)

Этот сигнал излучается, когда нажата клавиша «Звездочка» «*». Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onAsteriskPressed.

backPressed(KeyEvent event)

Этот сигнал излучается, когда нажата клавиша «Назад». Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onBackPressed.

backtabPressed(KeyEvent event)

Этот сигнал излучается, когда нажата комбинация клавиш Shift+Tab (Backtab). Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onBacktabPressed.

callPressed(KeyEvent event)

Этот сигнал излучается, когда нажата клавиша «Вызов». Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onCallPressed.

cancelPressed(KeyEvent event)

Этот сигнал излучается, когда нажата клавиша «Отмена». Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onCancelPressed.

context1Pressed(KeyEvent event)

Этот сигнал излучается, когда нажата клавиша «Контекст 1». Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onContext1Pressed.

context2Pressed(KeyEvent event)

Этот сигнал испускается при нажатии клавиши Context2. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onContext2Pressed.

context3Pressed(KeyEvent event)

Этот сигнал испускается при нажатии клавиши Context3. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onContext3Pressed.

context4Pressed(KeyEvent event)

Этот сигнал испускается при нажатии клавиши Context4. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onContext4Pressed.

deletePressed(KeyEvent event)

Этот сигнал испускается при нажатии клавиши Delete. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDeletePressed.

digit0Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '0'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit0Pressed.

digit1Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '1'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit1Pressed.

digit2Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '2'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit2Pressed.

digit3Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '3'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit3Pressed.

digit4Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '4'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit4Pressed.

digit5Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '5'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit5Pressed.

digit6Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '6'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit6Pressed.

digit7Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '7'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit7Pressed.

digit8Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '8'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit8Pressed.

digit9Pressed(KeyEvent event)

Этот сигнал испускается при нажатии цифровой клавиши '9'. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDigit9Pressed.

downPressed(KeyEvent event)

Этот сигнал испускается при нажатии стрелки вниз. Параметр event предоставляет информацию об событии.

Примечание: Соответствующий обработчик — onDownPressed.

enterPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Ввод. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onEnterPressed.

escapePressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Esc. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onEscapePressed.

flipPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Flip. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onFlipPressed.

hangupPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Отбой. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onHangupPressed.

leftPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Левая стрелка. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onLeftPressed.

menuPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Меню. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onMenuPressed.

noPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Нет. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onNoPressed.

pressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onPressed.

released(KeyEvent event)

Этот сигнал излучается при отпускании клавиши. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onReleased.

returnPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Возврат. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onReturnPressed.

rightPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Правая стрелка. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onRightPressed.

selectPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Выбор. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onSelectPressed.

[since 5.9] shortcutOverride(KeyEvent event)

Этот сигнал излучается при нажатии клавиши, которая потенциально может использоваться как сочетание клавиш. Параметр event содержит информацию об событии.

Установите event.accepted в true, если вы хотите предотвратить использование нажатой клавиши в качестве сочетания клавиш другими типами, такими как Shortcut. Например:

Item {
    id: escapeItem
    focus: true

    // Ensure that we get escape key press events first.
    Keys.onShortcutOverride: (event)=> event.accepted = (event.key === Qt.Key_Escape)

    Keys.onEscapePressed: {
        console.log("escapeItem is handling escape");
        // event.accepted is set to true by default for the specific key handlers
    }
}

Shortcut {
    sequence: "Escape"
    onActivated: console.log("Shortcut is handling escape")
}

Как и в других сигналах, shortcutOverride будет излучаться только для элемента, если у этого элемента установлен activeFocus.

Примечание: Соответствующий обработчик — onShortcutOverride.

Этот сигнал был введен в Qt 5.9.

См. также Shortcut.

spacePressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Пробел. Параметр event содержит информацию об событии.

Примечание: Соответствующий обработчик — onSpacePressed.

tabPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши Tab. Параметр event содержит информацию об этом событии.

Примечание: Соответствующий обработчик — onTabPressed.

upPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши со стрелкой вверх. Параметр event содержит информацию об этом событии.

Примечание: Соответствующий обработчик — onUpPressed.

volumeDownPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши уменьшения громкости. Параметр event содержит информацию об этом событии.

Примечание: Соответствующий обработчик — onVolumeDownPressed.

volumeUpPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши увеличения громкости. Параметр event содержит информацию об этом событии.

Примечание: Соответствующий обработчик — onVolumeUpPressed.

yesPressed(KeyEvent event)

Этот сигнал излучается при нажатии клавиши «Да». Параметр event содержит информацию об этом событии.

Примечание: Соответствующий обработчик — onYesPressed.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick-keys.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API