QT6
鼠标键盘事件
cpp
#include "widget.h"
#include "./ui_widget.h"
#include <QMouseEvent>
#include <QKeyEvent>
#include <QMessageBox>
#include <QStatusBar>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
// 不用按下鼠标也有效果
setMouseTracking(true);
ui->setupUi(this);
connect(ui->pushButton,&QPushButton::clicked,qApp,&QApplication::quit);
}
Widget::~Widget()
{
delete ui;
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
// 鼠标事件监听
int x = event->pos().x();
int y = event->pos().y();
QString text = "坐标:" + QString::number(x) + "," + QString::number(y);
ui->label->setText(text);
}
void Widget::keyPressEvent(QKeyEvent *event)
{
// 鼠标事件监听
if(event->key() == Qt::Key_Escape)
qApp->quit();
if(event->key() == Qt::Key_Q)
QMessageBox::information(this,"按键监听","按下了Q键");
}
效果展示
