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

详细描述

键事件会被发送给具有键盘输入聚焦的 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 ().

成员函数文档编制

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 .

Int key 是代码对于 Qt::Key 是事件循环应监听的。若 key 为 0,事件不是已知按键的结果;例如,它可能是合成序列 (或键盘宏) 的结果。 modifiers 保持键盘修饰符,和给定 text 是按键生成 Unicode 文本。若 autorep 为 True, isAutoRepeat () 将为 true。 count 是事件涉及的按键数。

除正常键事件数据外,还包含 nativeScanCode , nativeVirtualKey and 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 .

Int 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 .

[since 6.0] 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

返回此键生成的 Unicode 文本。

返回值因平台而异,当按下譬如 Shift、Control、Alt 及 Meta 修饰符键时,且可能返回空字符串。

注意: key () 将始终返回有效值,独立于修饰符键。

另请参阅 Qt::WA_KeyCompression .