Spec-Zone.ru › Qt 5.9

Тип QML KeyEvent

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

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

Свойства

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

Методы

  • bool matches(StandardKey key)

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

Например, следующее изменяет свойство состояния элемента 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 будет содержать корректное значение

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

bool matches(StandardKey key)

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

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

Этот метод QML был представлен в Qt 5.2.

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

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

Spec-Zone.ru

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