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列表
修饰符键:
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. |