行业知识
Qt 键盘事件
2026-11-15 00:23:17
来源:互联网转载
文章目录
- 1. 键盘按下、释放事件的基本使用
- 2. 键盘事件移动标签
- 2.1 界面上添加标签
- 2.2 ���动标签
QEvent::KeyPress
键盘按下时,触发该事件,它对应的子类是QKeyEvent
QEvent::KeyRelease
键盘抬起时,触发该事件,它对应的子类是QKeyEvent
1. 键盘按下、释放事件的基本使用
只需重写keyPressEvent()和keyPressEvent()两个函数即可
首先,在key_widget.h中添加两个函数的声明
// key_widget.hprotected: // 重写键盘事件 void keyPressEvent(QKeyEvent *event); void keyReleaseEvent(QKeyEvent *event);
然后,来到key_widget.cpp实现这2个函数:
// key_widget.cppvoid KeyWidget::keyPressEvent(QKeyEvent* event) { // 1. 单个按键 switch (event->key()) { case Qt::Key_Return: qDebug() x(), this->height()); } break; case Qt::Key_S: qDebug() move(lbl->x(), lbl->y() + 20); if (lbl->y() >= this->height()) { lbl->move(lbl->x(), -lbl->height()); } break; case Qt::Key_A: qDebug() move(lbl->x() - 20, lbl->y()); if (lbl->x() width())) { lbl->move(this->width(), lbl->y()); } break; case Qt::Key_D: qDebug() move(lbl->x() + 20, lbl->y()); if (lbl->x() >= this->width()) { lbl->move(0, lbl->y()); } break; case Qt::Key_B: qDebug() key() == Qt::Key_A) { qDebug() modifiers() == Qt::ShiftModifier && event->key() == Qt::Key_B) { qDebug() modifiers() == Qt::AltModifier && event->key() == Qt::Key_C) { qDebug() modifiers() == Qt::ControlModifier | Qt::ShiftModifier) && event->key() == Qt::Key_A) { qDebug() key()) { case Qt::Key_Return: qDebug() x(), -lbl->height()); } break; case Qt::Key_A: qDebug() move(lbl->x() - 20, lbl->y()); if (lbl->x() width())) { lbl->move(this->width(), lbl->y()); } break; case Qt::Key_D: qDebug() move(lbl->x() + 20, lbl->y()); if (lbl->x() >= this->width()) { lbl->move(0, lbl->y()); } break; case Qt::Key_B: qDebug() key() == Qt::Key_A) { qDebug() modifiers() == Qt::ShiftModifier && event->key() == Qt::Key_B) { qDebug() modifiers() == Qt::AltModifier && event->key() == Qt::Key_C) { qDebug() modifiers() == Qt::ControlModifier | Qt::ShiftModifier) && event->key() == Qt::Key_A) { qDebug()
上一篇:方舟怎么串联服务器玩?
下一篇:主机信息英文缩写怎么写