《QT实用小工具·二十六》运行时间记录

1、概述
源码放在文章末尾

运行时间记录,包含如下功能:

    1. 可以启动和停止服务,在需要的时候启动。
    1. 可以指定日志文件存放目录。
    1. 可以指定时间日志输出间隔。
    1. 可以单独追加一条记录到日志文件。
    1. 日志为文本格式,清晰明了。

软件demo如下所示:

项目部分代码如下:

cpp 复制代码
#ifndef SAVERUNTIME_H
#define SAVERUNTIME_H

/**
 * 运行时间记录
 * 1. 可以启动和停止服务,在需要的时候启动。
 * 2. 可以指定日志文件存放目录。
 * 3. 可以指定时间日志输出间隔。
 * 4. 可以单独追加一条记录到日志文件。
 * 5. 日志为文本格式,清晰明了。
 */

#include <QObject>
#include <QDateTime>

class QTimer;

#ifdef quc
class Q_DECL_EXPORT SaveRunTime : public QObject
#else
class SaveRunTime : public QObject
#endif

{
    Q_OBJECT
public:
    static SaveRunTime *Instance();
    explicit SaveRunTime(QObject *parent = 0);
    ~SaveRunTime();

private:
    static QScopedPointer<SaveRunTime> self;

    //日志文件路径
    QString path;
    //日志文件名称
    QString name;

    //最后的编号
    int lastID;
    //保存间隔
    int saveInterval;
    //开始时间
    QDateTime startTime;
    //日志文件
    QString logFile;
    //保存文件定时器
    QTimer *timerSave;

private:
    //比较两个时间差值
    void getDiffValue(const QDateTime &startTime, const QDateTime &endTime, int &day, int &hour, int &minute);

public Q_SLOTS:
    //启动服务
    void start();
    //停止服务
    void stop();

    //新建目录
    void newPath();
    //初始化日志文件
    void initLog();
    //追加一条记录到日志文件
    void appendLog();
    //保存运行时间到日志文件
    void saveLog();

    //设置文件保存目录
    void setPath(const QString &path);
    //设置文件名称
    void setName(const QString &name);
    //设置保存间隔
    void setSaveInterval(int saveInterval);
};

#endif // SAVERUNTIME_H

源码下载

相关推荐
tumu_C12 分钟前
用std::function减缓C++模板代码膨胀和编译压力的一个场景
开发语言·c++
BT-BOX25 分钟前
Matlab 2025B下载安装教程
开发语言·matlab
Hical611 小时前
C++17 实战心得:那些真正改变我写代码方式的特性
c++
programhelp_1 小时前
Pinterest OA 题库大公开|Programhelp 独家整理(最新高频)
java·开发语言
他是龙5511 小时前
71:Python安全 & 反序列化 & PYC反编译 & 格式化字符串安全
开发语言·python·安全
Hical612 小时前
实测:C++20 协程 vs Go Gin vs Rust Actix,谁的 Web 性能更强?
c++
wjs20242 小时前
Go 语言接口
开发语言
草莓熊Lotso2 小时前
《告别 “会用不会讲”:C++ string 底层原理拆解 + 手撕实现,面试 / 开发都适用》
开发语言·c++·面试
水木流年追梦2 小时前
【python因果库实战27】逆概率加权模型2
开发语言·python
会编程的土豆2 小时前
【数据结构与算法】空间复杂度从入门到面试:不仅会算,还要会解释
数据结构·c++·算法·面试·职场和发展