Класс QKeyEvent
Класс QKeyEvent описывает событие нажатия клавиши. Подробнее...
| Заголовок: | #include <QKeyEvent> |
| qmake: | QT += gui |
| Наследуется от: | QInputEvent |
Открытые функции
| QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, const QString &text = QString(), bool autorep = false, ushort count = 1) | |
| QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text = QString(), bool autorep = false, ushort count = 1) | |
| int | count() const |
| bool | isAutoRepeat() const |
| int | key() const |
| bool | matches(QKeySequence::StandardKey key) const |
| Qt::KeyboardModifiers | modifiers() const |
| quint32 | nativeModifiers() const |
| quint32 | nativeScanCode() const |
| quint32 | nativeVirtualKey() const |
| QString | text() const |
Подробное описание
События нажатия клавиш отправляются виджету с фокусом ввода с клавиатуры при нажатии или отпускании клавиш.
Событие нажатия клавиши содержит специальный флаг принятия, который указывает, будет ли обработчик обрабатывать событие. Этот флаг по умолчанию установлен для QEvent::KeyPress и QEvent::KeyRelease, поэтому нет необходимости вызывать accept() при работе с событием нажатия клавиши. Для QEvent::ShortcutOverride обработчик должен явно принять событие, чтобы запустить переопределение. Вызов ignore() для события нажатия клавиши передаст его родительскому виджету. Событие распространяется вверх по цепочке родительских виджетов, пока виджет не примет его или какой-либо фильтр событий не потребляет его.
Функция QWidget::setEnabled() может использоваться для включения или выключения событий мыши и клавиатуры для виджета.
Обработчики событий QWidget::keyPressEvent(), QWidget::keyReleaseEvent(), QGraphicsItem::keyPressEvent() и QGraphicsItem::keyReleaseEvent() получают события нажатия клавиш.
См. также QFocusEvent и QWidget::grabKeyboard().
Документация по членам-функциям
QKeyEvent::QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, const QString &text = QString(), bool autorep = false, ushort count = 1)
Создает объект события нажатия клавиши.
Параметр type должен быть QEvent::KeyPress, QEvent::KeyRelease или QEvent::ShortcutOverride.
Целочисленный параметр key — код Qt::Key, на который должен реагировать цикл обработки событий. Если key равен 0, событие не является результатом нажатия известной клавиши; например, это может быть результат последовательности ввода или макроса клавиатуры. modifiers содержит флаги модификаторов клавиатуры, а заданный text — Unicode-текст, сгенерированный нажатой клавишей. Если autorep равен true, isAutoRepeat() будет true. count — количество клавиш, участвующих в событии.
В дополнение к стандартным данным о событии нажатия клавиши также содержатся nativeScanCode, nativeVirtualKey и nativeModifiers. Эти дополнительные данные используются системой управления сочетаниями клавиш для определения, какие сочетания следует активировать.
QKeyEvent::QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text = QString(), bool autorep = false, ushort count = 1)
Создаёт объект события нажатия клавиши.
Параметр type должен быть QEvent::KeyPress, QEvent::KeyRelease или QEvent::ShortcutOverride.
Целочисленный параметр key — код Qt::Key, на который должен реагировать цикл обработки событий. Если key равен 0, событие не является результатом нажатия известной клавиши; например, это может быть результат последовательности ввода или макроса клавиатуры. modifiers содержит флаги модификаторов клавиатуры, а заданный text — Unicode-текст, сгенерированный нажатой клавишей. Если autorep равен true, isAutoRepeat() будет true. count — количество клавиш, участвующих в событии.
int QKeyEvent::count() const
Возвращает количество клавиш, участвующих в данном событии. Если text() не пустое, это просто длина строки.
См. также Qt::WA_KeyCompression.
bool QKeyEvent::isAutoRepeat() const
Возвращает true, если это событие происходит от повторяющейся клавиши; возвращает false, если это первоначальное нажатие клавиши.
Обратите внимание, что если событие представляет собой сжатое событие с несколькими клавишами, частично обусловленное автоматическим повторением, эта функция может возвращать true или false неопределённо.
int QKeyEvent::key() const
Возвращает код нажатой или отпущенной клавиши.
См. Qt::Key для списка кодов клавиш. Эти коды независимы от базовой системной среды. Обратите внимание, что эта функция не различает заглавные и строчные буквы; для этого используйте функцию text() (возвращающую Unicode-текст, сгенерированный клавишей).
Значение 0 или Qt::Key_unknown означает, что событие не является результатом нажатия известной клавиши; например, оно может быть результатом последовательности ввода, макроса клавиатуры или из-за сжатия события нажатия клавиши.
См. также Qt::WA_KeyCompression.
bool QKeyEvent::matches(QKeySequence::StandardKey key) const
Возвращает true, если событие соответствует заданной стандартной клавише key; в противном случае возвращает false.
Функция была добавлена в Qt 4.2.
Qt::KeyboardModifiers QKeyEvent::modifiers() const
Возвращает флаги модификаторов клавиатуры, существовавшие непосредственно после возникновения события.
Предупреждение: Эту функцию нельзя всегда использовать надёжно. Пользователь может обмануть её, например, одновременно нажав обе клавиши Shift и отпустив одну из них.
См. также QGuiApplication::keyboardModifiers().
quint32 QKeyEvent::nativeModifiers() const
Возвращает родные модификаторы события нажатия клавиши. Если событие не содержит этих данных, возвращается 0.
Примечание: родные модификаторы могут быть 0, даже если событие содержит расширенную информацию.
Функция была добавлена в Qt 4.2.
quint32 QKeyEvent::nativeScanCode() const
Возвращает родной код сканирования события нажатия клавиши. Если событие не содержит этих данных, возвращается 0.
Примечание: родной код сканирования может быть 0, даже если событие содержит расширенную информацию.
Примечание: в macOS эта функция бесполезна, так как нет способа получить код сканирования из системных API. Функция всегда возвращает 1 (или 0 в случае, описанном выше).
Функция была добавлена в Qt 4.2.
quint32 QKeyEvent::nativeVirtualKey() const
Возвращает родной виртуальный ключ или символ ключа события. Если событие не содержит этих данных, возвращается 0.
Примечание: родной виртуальный ключ может быть 0, даже если событие содержит расширенную информацию.
Функция была добавлена в Qt 4.2.
QString QKeyEvent::text() const
Возвращает текстовое представление Unicode, сгенерированное нажатием этой клавиши.
Возвращаемые значения при нажатии клавиш модификаторов, таких как Shift, Control, Alt и Meta, различаются в зависимости от платформы и могут возвращать пустую строку.
Примечание: key() всегда возвращает корректное значение, независимо от клавиш модификаторов.
См. также Qt::WA_KeyCompression.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qkeyevent.html