介绍
QTimer是属于不可见的,不能通过ui界面来添加,只能通过代码来进行实现。
常用的操作:setInterval(设置定时时间,单位ms)、start(启动定时器),和定时时间到时所发出的信号timeout(),stop(停止定时器)。
一:头文件
#include <QTimer>
直接上代码了,关键地方我有写注释,自己拿到本地运行一下就可以了
二:代码实现
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QObject>
#include <QTimer>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
public slots:
//超时槽函数
void handtimeout();
private:
Ui::MainWindow *ui;
//初始化定时器
QTimer *mtimer;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#define TIMER_TIMEOUT (1*1000)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//初始化空间
mtimer = new QTimer(this);
//定时器绑定超时槽函数
connect(mtimer,SIGNAL(timeout()),this,SLOT(handtimeout()));
//定时器开始并设置倒计时时间
mtimer->start(TIMER_TIMEOUT);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::handtimeout()
{
qDebug()<<"超时了!";
//判断定时器是否在工作
if(mtimer->isActive())
{
//停止定时器
mtimer->stop();
//释放空间
delete mtimer;
mtimer = nullptr;
}
}
三:运行结果