QKeyEvent 类

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

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

公共函数

QKeyEvent (QEvent::Type type , int key , Qt::KeyboardModifiers modifiers , const QString & text = QString(), bool autorep = false, ushort count = 1)
QKeyEvent (QEvent::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

保护变量

ushort autor
ushort c
int k
quint32 nModifiers
quint32 nScanCode
quint32 nVirtualKey
QString txt

额外继承成员

详细描述

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 ( QEvent::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 ( QEvent::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 .