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 .