Класс 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 — текстовое представление символа, сгенерированного клавишей. Если 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.2/qkeyevent.html