什么相当于使用Qt的C ++中C#的计时器?

时间:2014-09-29 05:53:53

标签: c++ qt

我想在我的代码中使用计时器。我使用Qt creator在C ++中编程。有没有办法使用Qt在C ++中模拟计时器,这将在启用时以特定间隔触发事件,类似于我们在C#中通常所做的那样?

2 个答案:

答案 0 :(得分:4)

Qt中,它被称为QTimer。它与C#略有不同,因为使用它的方式是通过Signals and Slots。这是一个例子:

#include <QCoreApplication>
#include <QObject>
#include <QDebug>
#include <QTimer>

class MyClass : public QObject
{
    Q_OBJECT

public:
    explicit MyClass(QObject *parent = 0) :
        QObject(parent)
    {
        connect(&timer, SIGNAL(timeout()), this, SLOT(onTimeOut()));
    }

    void startJob()
    {
        timer.start(1000);
    }

public slots:
    void onTimeOut()
    {
        qDebug() << "Time out!";
    }

private:
    QTimer timer;
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    MyClass c;
    c.startJob();

    return a.exec();
}

我建议您阅读Qt documentation page以及getting started guides中的QTimer文档。它是您可以找到的最好的文档软件之一,我认为您会喜欢它。

答案 1 :(得分:0)

检查助手。有一种叫做QTimer的东西。这应该可以解决问题。