QT开发中文网

Qt C++ 在C++类中启动定时器

在Qt C++中,你可以通过继承QTimer类或使用QObject的定时器机制,在C++类中启动定时器。

方法1:继承QTimer类

#include <QObject>
#include <QTimer>

class MyClass : public QObject
{
    Q_OBJECT

public:
    MyClass(QObject *parent = nullptr) : QObject(parent)
    {
        QTimer* timer = new QTimer(this);
        connect(timer, &QTimer::timeout, this, &MyClass::onTimerTimeout);
        timer->start(1000); // 每隔1秒触发一次定时器事件
    }

public slots:
    void onTimerTimeout()
    {
        // 处理定时器触发事件的逻辑
    }
};

方法2:使用QObject的定时器机制

#include <QObject>
#include <QTimerEvent>

class MyClass : public QObject
{
    Q_OBJECT

public:
    MyClass(QObject *parent = nullptr) : QObject(parent)
    {
        startTimer(1000); // 每隔1秒触发一次定时器事件
    }

protected:
    void timerEvent(QTimerEvent *event) override
    {
        if (event->timerId() == timerId())
        {
            // 处理定时器触发事件的逻辑
        }
        else
        {
            QObject::timerEvent(event);
        }
    }
};

无论是继承QTimer类还是使用QObject的定时器机制,都需要在头文件中添加#include <QObject>和必要的Qt模块头文件,并将相应的函数声明为slots或者重写timerEvent函数。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=10388

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?