• QT计时器QTime的使用举例


    Qt 中的计时器QTimer)是一种用于执行定时操作的机制。您可以使用 QTimer 来执行周期性任务、在一段时间后执行操作或创建间隔定时器。以下是使用 QTimer 的基本步骤以及一个简单的示例:

    **包含头文件:**首先,确保您的Qt应用程序中包含了 QTimer 头文件。

    #include 
    
    • 1

    **创建 QTimer 对象:**在您的应用程序中创建一个 QTimer 对象。

    QTimer *timer = new QTimer(this);
    
    • 1

    在上述代码中,this 是指定了 QTimer 的父对象,通常是一个 QObject,以确保 QTimer 在父对象销毁时自动释放。

    **连接信号和槽:**如果您希望在定时器触发时执行特定的操作,可以将定时器的 timeout() 信号连接到一个槽函数。

    connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout()));
    
    • 1

    在这里,onTimeout() 是您自己实现的槽函数,将在定时器超时时执行。

    **设置定时器间隔:**使用 setInterval() 方法来设置定时器的触发间隔,以毫秒为单位。

    timer->setInterval(1000); // 设置为每隔1秒触发一次
    
    • 1

    **启动和停止定时器:**您可以使用 start() 方法来启动定时器,使用 stop() 方法来停止定时器。

    timer->start(); // 启动定时器
    // timer->stop(); // 停止定时器
    
    • 1
    • 2

    以下是一个完整的示例,演示了如何使用 QTimer 创建一个简单的定时器应用程序:

    #include 
    #include 
    #include 
    #include 
    
    class MyTimer : public QObject
    {
        Q_OBJECT
    
    public slots:
        void onTimeout()
        {
            qDebug() << "Timer timeout!";
        }
    };
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        MyTimer timerObject;
    
        QTimer *timer = new QTimer(&a);
        QObject::connect(timer, SIGNAL(timeout()), &timerObject, SLOT(onTimeout()));
        timer->start(1000); // 每隔1秒触发一次
    
        return a.exec();
    }
    
    #include "main.moc"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    在此示例中,我们创建了一个 QTimer 对象,并将其 timeout() 信号连接到名为 onTimeout() 的槽函数。定时器每隔1秒触发一次,槽函数会在每次触发时输出一条消息。程序会一直运行,直到您手动终止它。

    记得在 .pro 文件中包含 QT += core 以启用 Qt 的核心模块。

  • 相关阅读:
    内存以及垃圾回收
    FFmpeg入门详解之113:live555简介
    LeetCode //2619. Array Prototype Last (Day 23 of LC JavaScript Challenge)
    CodeQL笔记之基础语法(二)
    Linux (Ubuntu)文件系统结构(入门必看)
    密码学--对称加密和非对称加密联合使用
    UE4引擎支持HTML5
    python常用基础笔记
    hutool、esayPoi、easyExcel、读写数据,性能对比
    聊聊微服务治理体系
  • 原文地址:https://blog.csdn.net/weixin_40921238/article/details/133743289