QKeyEvent類用來描述一個鍵盤事件。當鍵盤按鍵被按下或者被釋放時,鍵盤事件便會被發送給擁有鍵盤輸入焦點的部件。 QKeyEvent的key()函數可以擷取具體的按鍵,需要特别說明的是,Enter鍵在這裡是Qt::Key_Return;
鍵盤上的一些修飾鍵,比如Ctrl和Shift等,這裡需要使用QKeyEvent的modifiers()函數來擷取它們。例如:
void Widget::keyPressEvent(QKeyEvent *event) // 鍵盤按下事件
{
if(event->modifiers() == Qt::ControlModifier){ // 是否按下Ctrl鍵
if(event->key() == Qt::Key_M) // 是否按下M鍵
setWindowState(Qt::WindowMaximized); // 視窗最大化
}
else QWidget::keyPressEvent(event);
}
void Widget::keyReleaseEvent(QKeyEvent *event) // 按鍵釋放事件
{
// 其他操作
}
enum Qt::Key 在 Qt Namespace中
QKey清單
修飾符鍵:
Constant | Value | Description |
| | No modifier key is pressed. |
| | A Shift key on the keyboard is pressed. |
| | A Ctrl key on the keyboard is pressed. |
| | An Alt key on the keyboard is pressed. |
| | A Meta key on the keyboard is pressed. |
| | A keypad button is pressed. |
| | X11 only. A Mode_switch key on the keyboard is pressed. |