Класс 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 |
Подробное описание
События нажатия клавиш отправляются виджету с фокусом ввода с клавиатуры при нажатии или отпускании клавиш.
Событие нажатия клавиши содержит специальный флаг accept, указывающий, будет ли обработчик обрабатывать событие нажатия клавиши. Этот флаг по умолчанию установлен для 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 — это текстовое представление Юникода, сгенерированное клавишей. Если 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, quint16 count = 1)
Создаёт объект события нажатия клавиши.
Параметр type должен быть QEvent::KeyPress, QEvent::KeyRelease или QEvent::ShortcutOverride.
Целое число key — код Qt::Key, на который должен реагировать цикл обработки событий. Если key равно 0, событие не связано с известной клавишей; например, оно может быть результатом последовательности ввода или макроса клавиатуры. modifiers содержит модификаторы клавиатуры, а заданный text — это текстовое представление Юникода, сгенерированное клавишей. Если 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() (возвращающую текст Юникода, сгенерированный клавишей).
Значение 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.0/qkeyevent.html