一个桌面应用程序,该应用程序需要定期更新一些数据,以确保用户始终看到最新的信息。
.h
cpp
#ifndef TIMEREXAMPLE_H
#define TIMEREXAMPLE_H
#include <QObject>
#include <QTimer>
#include <QDateTime>
class TimerExample : public QObject
{
Q_OBJECT
public:
explicit TimerExample(QObject *parent = nullptr);
~TimerExample();
signals:
void dataUpdated(QString newData);
public slots:
void updateData();
private:
QTimer *timer;
QString currentData;
};
#endif // TIMEREXAMPLE_H
cpp
cpp
#include "timerexample.h"
#include <QDebug>
TimerExample::TimerExample(QObject *parent) : QObject(parent)
{
// 创建定时器对象
timer = new QTimer(this);
// 连接定时器的timeout()信号到槽函数
connect(timer, SIGNAL(timeout()), this, SLOT(updateData()));
// 设置定时器的时间间隔,单位是毫秒
timer->start(5000); // 每隔5秒触发一次timeout()信号
// 初始化数据
currentData = "Initial data";
}
TimerExample::~TimerExample()
{
// 在对象销毁时,停止定时器并释放资源
timer->stop();
delete timer;
}
void TimerExample::updateData()
{
// 模拟从服务器或其他来源获取新数据的操作
QDateTime currentTime = QDateTime::currentDateTime();
currentData = "Updated data at " + currentTime.toString("hh:mm:ss");
// 发送信号,通知数据已经更新
emit dataUpdated(currentData);
qDebug() << "Data updated:" << currentData;
}