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 |
键事件会被发送给具有键盘输入聚焦的 Widget,当按下 (或释放) 按键时。
键事件包含指示接收者,将是否处理键事件的特殊接受标志。默认情况下,有设置此标志对于 QEvent::KeyPress and QEvent::KeyRelease ,所以,不需要调用 accept () 当键事件活动时。对于 QEvent::ShortcutOverride 接收者需要明确接受事件,以触发覆盖。调用 ignore () 在键事件,会将它传播给父级 Widget。事件在父级 Widget 链上传播,直到小部件接受它 (或事件过滤器消耗掉它)。
QWidget::setEnabled () 函数可用于启用 (或禁用) 小部件的鼠标事件和键盘事件。
事件处理程序 QWidget::keyPressEvent (), QWidget::keyReleaseEvent (), QGraphicsItem::keyPressEvent () 和 QGraphicsItem::keyReleaseEvent () 接收键事件。
另请参阅 QFocusEvent and QWidget::grabKeyboard ().
构造键事件对象。
type 参数必须是 QEvent::KeyPress , QEvent::KeyRelease ,或 QEvent::ShortcutOverride .
Int key 是代码对于 Qt::Key 是事件循环应监听的。若 key 为 0,事件不是已知按键的结果;例如,它可能是合成序列 (或键盘宏) 的结果。 modifiers 保持键盘修饰符,和给定 text 是按键生成 Unicode 文本。若 autorep 为 True, isAutoRepeat () 将为 true。 count 是事件涉及的按键数。
除正常键事件数据外,还包含 nativeScanCode , nativeVirtualKey and nativeModifiers 。此额外数据用于快捷方式系统,以确定要触发的快捷方式。
构造键事件对象。
type 参数必须是 QEvent::KeyPress , QEvent::KeyRelease ,或 QEvent::ShortcutOverride .
Int key 是代码对于 Qt::Key 是事件循环应监听的。若 key 为 0,事件不是已知按键的结果;例如,它可能是合成序列 (或键盘宏) 的结果。 modifiers 保持键盘修饰符,和给定 text 是按键生成 Unicode 文本。若 autorep 为 True, isAutoRepeat () 将为 true。 count 是事件涉及的按键数。
返回此事件涉及的按键数。若 text () 不为空,这就是字符串的长度。
另请参阅 Qt::WA_KeyCompression .
返回
true
若此事件来自自动重复键;返回
false
若它来自初始键按下。
注意,若事件是部分由于自动重复导致的多键压缩事件,此函数返回 true 或 false 不确定。
返回按下 (或释放) 的键码。
见 Qt::Key 了解键盘代码的列表。这些代码独立于底层窗口系统。注意,此函数不区分大写和非大写字母,使用 text () 函数 (返回键生成的 Unicode 文本) 为此目的。
值为 0 或 Qt::Key_unknown 意味着事件不是已知按键的结果;例如,它可能是合成序列、键盘宏、或由于键事件压缩的结果。
另请参阅 Qt::WA_KeyCompression .
[since 6.0]
QKeyCombination
QKeyEvent::
keyCombination
() const
返回 QKeyCombination 对象包含两者 key () 和 modifiers () 携带通过此事件。
该函数在 Qt 6.0 引入。
返回
true
若键事件匹配给定标准
key
;否则返回
false
.
返回事件发生后立即存在的键盘修饰符标志。
警告: 无法始终信任此函数。用户可能混淆,通过按下两 Shift 键 (同时) 然后释放其中之一,例如。
另请参阅 QGuiApplication::keyboardModifiers ().
返回键事件的本机修饰符。若键事件不包含此数据,返回 0。
注意: 本机修饰符可能为 0,即使键事件包含扩展信息。
返回键事件的本机扫描代码。若键事件不包含此数据,返回 0。
注意: 本机扫描码可能为 0,即使键事件包含扩展信息。
返回本机虚拟键,或键事件的键符号。若键事件不包含此数据,返回 0。
注意: 本机虚拟键可能为 0,即使键事件包含扩展信息。
返回此键生成的 Unicode 文本。
返回值因平台而异,当按下譬如 Shift、Control、Alt 及 Meta 修饰符键时,且可能返回空字符串。
注意: key () 将始终返回有效值,独立于修饰符键。
另请参阅 Qt::WA_KeyCompression .