Класс QKeyEvent
Класс QKeyEvent описывает событие нажатия клавиши. Подробнее...
| Заголовок: | #include <QKeyEvent> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| 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, quint16 count = 1, const QInputDevice *device = QInputDevice::primaryKeyboard()) | |
| QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text = QString(), bool autorep = false, quint16 count = 1) | |
| int | count() const |
| bool | isAutoRepeat() const |
| int | key() const |
| QKeyCombination | keyCombination() 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, quint16 count = 1, const QInputDevice *device = QInputDevice::primaryKeyboard())
Создаёт объект события нажатия клавиши.
Параметр type должен быть QEvent::KeyPress, QEvent::KeyRelease или QEvent::ShortcutOverride.
Целое key — код Qt::Key, на который должен реагировать цикл событий. Если key равен 0, событие не связано с известной клавишей; например, оно может быть результатом последовательности составления символов или макроса клавиатуры. modifiers содержит модификаторы клавиатуры, а заданный text — это текстовое представление Unicode, сгенерированное клавишей. Если autorep истинно, isAutoRepeat() будет истинным. count — количество клавиш, участвующих в событии.
Помимо обычных данных события нажатия клавиши, также содержатся nativeScanCode, nativeVirtualKey и nativeModifiers. Эти дополнительные данные используются системой управления горячими клавишами для определения, какие горячие клавиши следует активировать.
QKeyEvent::QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text = QString(), bool autorep = false, quint16 count = 1)
Создаёт объект события нажатия клавиши.
Параметр type должен быть QEvent::KeyPress, QEvent::KeyRelease или QEvent::ShortcutOverride.
Целое key — код Qt::Key, на который должен реагировать цикл событий. Если key равен 0, событие не связано с известной клавишей; например, оно может быть результатом последовательности составления символов или макроса клавиатуры. modifiers содержит модификаторы клавиатуры, а заданный text — это текстовое представление Unicode, сгенерированное клавишей. Если autorep истинно, isAutoRepeat() будет истинным. 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.
QKeyCombination QKeyEvent::keyCombination() const
Возвращает объект QKeyCombination, содержащий как код клавиши key(), так и модификаторы modifiers(), переданные в этом событии.
Функция была добавлена в Qt 6.0.
bool QKeyEvent::matches(QKeySequence::StandardKey key) const
Возвращает true если событие нажатия клавиши соответствует заданной стандартной клавише key; в противном случае возвращает false.
Qt::KeyboardModifiers QKeyEvent::modifiers() const
Возвращает флаги модификаторов клавиатуры, существовавшие непосредственно после возникновения события.
Предупреждение: Эту функцию нельзя всегда считать надёжной. Пользователь может её обмануть, например, одновременно нажав обе клавиши Shift и отпустив одну из них.
См. также QGuiApplication::keyboardModifiers().
quint32 QKeyEvent::nativeModifiers() const
Возвращает родные модификаторы события нажатия клавиши. Если событие нажатия клавиши не содержит этих данных, возвращается 0.
Примечание: родные модификаторы могут быть равны 0, даже если событие нажатия клавиши содержит расширенную информацию.
quint32 QKeyEvent::nativeScanCode() const
Возвращает исходный код сканирования события нажатия клавиши. Если событие нажатия клавиши не содержит этих данных, возвращается 0.
Примечание: Исходный код сканирования может быть 0, даже если событие нажатия клавиши содержит расширенную информацию.
quint32 QKeyEvent::nativeVirtualKey() const
Возвращает исходный виртуальный ключ или символ ключа события нажатия клавиши. Если событие нажатия клавиши не содержит этих данных, возвращается 0.
Примечание: Исходный виртуальный ключ может быть 0, даже если событие нажатия клавиши содержит расширенную информацию.
QString QKeyEvent::text() const
Возвращает текстовое представление Юникод, сгенерированное нажатием этой клавиши.
Значения, возвращаемые при нажатии клавиш-модификаторов, таких как 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-6.1/qkeyevent.html