天天看點

54 QT鍵盤事件

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清單

54 QT鍵盤事件
54 QT鍵盤事件

修飾符鍵:

Constant Value Description

​Qt::NoModifier​

​0x00000000​

No modifier key is pressed.

​Qt::ShiftModifier​

​0x02000000​

A Shift key on the keyboard is pressed.

​Qt::ControlModifier​

​0x04000000​

A Ctrl key on the keyboard is pressed.

​Qt::AltModifier​

​0x08000000​

An Alt key on the keyboard is pressed.

​Qt::MetaModifier​

​0x10000000​

A Meta key on the keyboard is pressed.

​Qt::KeypadModifier​

​0x20000000​

A keypad button is pressed.

​Qt::GroupSwitchModifier​

​0x40000000​

X11 only. A Mode_switch key on the keyboard is pressed.