天天看点

54 QT键盘事件

QKeyEvent类用来描述一个键盘事件。当键盘按键被按下或者被释放时,键盘事件便会被发送给拥有键盘输入焦点的部件。         QKeyEvent的key()函数可以获取具体的按键,需要特别说明的是,回车键在这里是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.