QKeyEvent 类

The QKeyEvent 类描述键事件。 更多...

头: #include <QKeyEvent>
qmake: QT += gui
继承: QInputEvent

公共函数

QKeyEvent (Type type , int key , Qt::KeyboardModifiers modifiers , const QString & text = QString(), bool autorep = false, ushort count = 1)
QKeyEvent (Type type , int key , Qt::KeyboardModifiers modifiers , quint32 nativeScanCode , quint32 nativeVirtualKey , quint32 nativeModifiers , const QString & text = QString(), bool autorep = false, ushort count = 1)
int count () const
bool isAutoRepeat () const
int key () const
bool matches (QKeySequence::StandardKey key ) const
Qt::KeyboardModifiers modifiers () const
quint32 nativeModifiers () const
quint32 nativeScanCode () const
quint32 nativeVirtualKey () const
QString text () const

额外继承成员

详细描述

The QKeyEvent 类描述键事件。

键事件会被发送给具有键盘输入聚焦的 Widget,当按下 (或释放) 按键时。

键事件包含指示接收者,将是否处理键事件的特殊接受标志。默认情况下,有设置此标志对于 QEvent::KeyPress and QEvent::KeyRelease ,所以,不需要调用 accept () 当键事件活动时。对于 QEvent::ShortcutOverride 接收者需要明确接受事件,以触发覆盖。调用 ignore () 在键事件,会将它传播给父级 Widget。事件在父级 Widget 链上传播,直到小部件接受它 (或事件过滤器消耗掉它)。

The QWidget::setEnabled () 函数可用于启用 (或禁用) 小部件的鼠标事件和键盘事件。

事件处理程序 QWidget::keyPressEvent (), QWidget::keyReleaseEvent (), QGraphicsItem::keyPressEvent () 和 QGraphicsItem::keyReleaseEvent () 接收键事件。

另请参阅 QFocusEvent and QWidget::grabKeyboard ().

成员函数文档编制

QKeyEvent:: QKeyEvent ( Type type , int key , Qt::KeyboardModifiers modifiers , const QString & text = QString(), bool autorep = false, ushort count = 1)

构造键事件对象。

The type 参数必须是 QEvent::KeyPress , QEvent::KeyRelease ,或 QEvent::ShortcutOverride .

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

QKeyEvent:: QKeyEvent ( Type type , int key , Qt::KeyboardModifiers modifiers , quint32 nativeScanCode , quint32 nativeVirtualKey , quint32 nativeModifiers , const QString & text = QString(), bool autorep = false, ushort count = 1)

构造键事件对象。

The 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 。此额外数据用于快捷方式系统,以确定要触发的快捷方式。

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 .

bool QKeyEvent:: matches ( QKeySequence::StandardKey key ) const

返回 true 若键事件匹配给定标准 key ;否则返回 false .

该函数在 Qt 4.2 引入。

Qt::KeyboardModifiers QKeyEvent:: modifiers () const

返回事件发生后立即存在的键盘修饰符标志。

警告: 无法始终信任此函数。用户可能混淆,通过按下两 Shift 键 (同时) 然后释放其中之一,例如。

另请参阅 QGuiApplication::keyboardModifiers ().

quint32 QKeyEvent:: nativeModifiers () const

返回键事件的本机修饰符。若键事件不包含此数据,返回 0。

注意:本机修饰符可能为 0,即使键事件包含扩展信息。

该函数在 Qt 4.2 引入。

quint32 QKeyEvent:: nativeScanCode () const

返回键事件的本机扫描代码。若键事件不包含此数据,返回 0。

注意:本机扫描代码可能为 0,即使键事件包含扩展信息。

注意:在 Mac OS/X,此函数没什么用,因为没有办法从 Carbon 或 Cocoa 获得扫描码。函数始终返回 1 (或 0 当解释上文情况时)。

该函数在 Qt 4.2 引入。

quint32 QKeyEvent:: nativeVirtualKey () const

返回本机虚拟键,或键事件的键符号。若键事件不包含此数据,返回 0。

注意:本机虚拟键可能为 0, 即使键事件包含扩展信息。

该函数在 Qt 4.2 引入。

QString QKeyEvent:: text () const

返回此键生成的 Unicode 文本。

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

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

另请参阅 Qt::WA_KeyCompression .