QKeyEvent 類描述鍵事件。 更多...
| 頭: |
#include <QKeyEvent>
|
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
|
| qmake: |
QT += gui
|
| 繼承: | QInputEvent |
| QKeyEvent (QEvent::Type type , int key , Qt::KeyboardModifiers modifiers , const QString & text = QString(), bool autorep = false, quint16 count = 1) | |
| 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()) | |
| int | count () const |
| bool | isAutoRepeat () const |
| int | key () const |
(從 6.0 起)
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 鏈上傳播,直到小部件接受它 (或事件過濾器消耗掉它)。
The QWidget::setEnabled () 函數可用於啓用 (或禁用) 小部件的鼠標事件和鍵盤事件。
事件處理程序 QWidget::keyPressEvent (), QWidget::keyReleaseEvent (), QGraphicsItem::keyPressEvent () 和 QGraphicsItem::keyReleaseEvent () 接收鍵事件。
另請參閱 QFocusEvent and QWidget::grabKeyboard ().
構造鍵事件對象。
The type 參數必須是 QEvent::KeyPress , QEvent::KeyRelease ,或 QEvent::ShortcutOverride .
Int key 是代碼對於 Qt::Key 是事件循環應監聽的。若 key 為 0,事件不是已知按鍵的結果;例如,它可能是閤成序列 (或鍵盤宏) 的結果。 modifiers 保持鍵盤修飾符,和給定 text 是按鍵生成 Unicode 文本。若 autorep 為 True, isAutoRepeat () 將為 true。 count 是事件涉及的按鍵數。
構造鍵事件對象。
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 。此額外數據用於快捷方式係統,以確定要觸發的快捷方式。
返迴此事件涉及的按鍵數。若 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 文本。
The text is not limited to the printable range of Unicode code points, and may include control characters or characters from other Unicode categories, including QChar::Other_PrivateUse .
The text may also be empty, for example when modifier keys such as Shift, Control, Alt, and Meta are pressed (depending on the platform). The key () function will always return a valid value.
另請參閱 Qt::WA_KeyCompression .