欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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板子上执行后效果如下:

qt5 鼠标无动作时进入屏保

备注

 setCursor(Qt::ArrowCursor); //这边是设置鼠标的形状,可参考下表

qt5 鼠标无动作时进入屏保