Spec-Zone.ru › Qt 6.0

Тип KeyEvent QML

Предоставляет информацию о событии нажатия клавиши. Подробнее...

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

Свойства

  • accepted : bool
  • count : int
  • isAutoRepeat : bool
  • key : int
  • modifiers : int
  • nativeScanCode : quint32
  • text : string

Методы

  • bool matches(StandardKey matchKey)

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

Например, следующее изменяет свойство состояния элемента Item при нажатии клавиши Enter:

Item {
    focus: true
    Keys.onPressed: { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; }
}

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

accepted : bool

Установка accepted в значение true предотвращает распространение события нажатия клавиши в родительский элемент.

В общем случае, если элемент реагирует на событие нажатия клавиши, то оно должно быть принято, чтобы родительские элементы также не реагировали на это же событие.

count : int

Это свойство содержит количество клавиш, участвующих в данном событии. Если KeyEvent::text не пустое, это просто длина строки.

isAutoRepeat : bool

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

key : int

Это свойство содержит код клавиши, которая была нажата или отпущена.

См. Qt.Key для списка кодов клавиш. Эти коды независимы от базовой системы окон. Обратите внимание, что эта функция не различает заглавные и строчные буквы; используйте свойство text для этой цели.

Значение 0 или Qt.Key_Unknown означает, что событие не является результатом нажатия известной клавиши; например, это может быть результатом последовательности составления, клавиатурной макрокоманды или из-за сжатия событий клавиш.

modifiers : int

Это свойство содержит флаги модификаторов клавиатуры, которые существовали непосредственно перед возникновением события.

В нем содержится побитовая комбинация:

  • Qt.NoModifier - Ни одна клавиша-модификатор не нажата.
  • Qt.ShiftModifier - Нажата клавиша Shift.
  • Qt.ControlModifier - Нажата клавиша Ctrl.
  • Qt.AltModifier - Нажата клавиша Alt.
  • Qt.MetaModifier - Нажата клавиша Meta.
  • Qt.KeypadModifier - Нажата кнопка цифрового блока.
  • Qt.GroupSwitchModifier - Только X11. Нажата клавиша переключения режимов.

Например, чтобы реагировать на комбинацию клавиш Shift + Enter:

Item {
    focus: true
    Keys.onPressed: {
        if ((event.key == Qt.Key_Enter) && (event.modifiers & Qt.ShiftModifier))
            doSomething();
    }
}

nativeScanCode : quint32

Это свойство содержит родной код сканирования клавиши, которая была нажата. Оно передается из QKeyEvent без изменений.

См. также QKeyEvent::nativeScanCode().

text : string

Это свойство содержит текстовое представление Unicode, сгенерированное нажатием клавиши. Возвращаемый текст может быть пустой строкой в случаях, когда нажаты или отпущены клавиши-модификаторы, такие как Shift, Control, Alt и Meta. В таких случаях key будет содержать корректное значение.

Документация методов

[since 5.2] bool matches(StandardKey matchKey)

Возвращает true если событие нажатия клавиши соответствует заданной стандартной клавише matchKey; в противном случае возвращает false.

Item {
    focus: true
    Keys.onPressed: {
        if (event.matches(StandardKey.Undo))
            myModel.undo();
        else if (event.matches(StandardKey.Redo))
            myModel.redo();
    }
}

Этот метод был введен в Qt 5.2.

См. также QKeySequence::StandardKey.

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

Spec-Zone.ru

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