QEvent::KeyPress
键盘按下时,触发该事件,它对应的子类是
QKeyEvent
QEvent::KeyRelease
键盘抬起时,触发该事件,它对应的子类是
QKeyEvent
1. 键盘按下、释放事件的基本使用
只需重写keyPressEvent()
和keyPressEvent()
两个函数即可
首先,在key_widget.h
中添加两个函数的声明
// key_widget.h
protected:
// 重写键盘事件
void keyPressEvent(QKeyEvent *event);
void keyReleaseEvent(QKeyEvent *event);
然后,来到key_widget.cpp
实现这2个函数:
// key_widget.cpp
void KeyWidget::keyPressEvent(QKeyEvent* event) {
// 1. 单个按键
switch (event->key()) {
case Qt::Key_Return:
qDebug() << "Enter";
break;
case Qt::Key_Escape:
qDebug() << "Esc";
break;
case Qt::Key_Control:
qDebug() << "Ctrl";
break;
case Qt::Key_Shift:
qDebug() << "Shift";
break;
case Qt::Key_Alt:
qDebug() << "Alt";
break;
case Qt::Key_W:
qDebug() << "Up";
lbl->move(lbl->x(), lbl->y() - 20);
if (lbl->y() <= -(lbl->height())) {
lbl->move(lbl->x(), this->height());
}
break;
case Qt::Key_S:
qDebug() <