qt5 鼠标无动作时进入屏保
程序员文章站
2022-05-28 11:52:41
...
1. 包含头文件
#include <QTimer> //时钟类
#include <QtDebug> //打印调试
#include <QMouseEvent> //鼠标事件
2. 实现过程
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setMouseTracking(true); //设置鼠标跟踪
QTimer *timer = new QTimer(this); //new一个时钟对象
connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate()));//连接信号
//将始终触发连接到自定义的槽函数
timer->start(10000);//每十秒触发一次
}
void MainWindow::mouseMoveEvent(QMouseEvent *event) //重构的鼠标移动事件函数
{
qDebug()<<"mouse move";
setCursor(Qt::ArrowCursor); //说明见下文
}
void MainWindow::timerUpdate() //鼠标十秒没动作后执行
{
qDebug()<<"enter protect";
this->setCursor(Qt::BlankCursor);//说明见下文
}
//以上两个函数记得在.h中定义
/******/
public slots:
void timerUpdate();
private:
Ui::MainWindow *ui;
void mouseMoveEvent(QMouseEvent *event);//重写mouseMoveEvent函数
/******/
执行效果
因笔者测试环境是在arm平台上,所以经过交叉编译后,烧写到arm板子上执行后效果如下:
备注
setCursor(Qt::ArrowCursor); //这边是设置鼠标的形状,可参考下表
推荐阅读