Spec-Zone.ru › Qt 6.1

Тип QML Keys

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

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

Свойства

  • enabled : bool
  • forwardTo : список<Объект>
  • 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 {
    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)

Этот сигнал испускается при нажатии клавиши Context1. Параметр 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.1/qml-qtquick-keys.html

Spec-Zone.ru

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