【QT】C#中System.Timers.Timer定时触发事件的计时器类,qt与之对应的QTimer类的使用举例
2023-12-27 07:39:27
一个桌面应用程序,该应用程序需要定期更新一些数据,以确保用户始终看到最新的信息。
.h
#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
#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;
}
文章来源:https://blog.csdn.net/weixin_44939430/article/details/135214716
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!