Qt定时器

Qt中定时器的用法

我们用一个例子来展示,一个窗口添加一个label标签,然后持续显示时间。

![]()

图是静态的,但是我们的时钟一直是在走的。

上代码

#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_MyQtAppProject.h"

#define L QString::fromLocal8Bit

class MyQtAppProject : public QMainWindow
{
    Q_OBJECT

public:
    MyQtAppProject(QWidget *parent = Q_NULLPTR);

private:
    void timerEvent(QTimerEvent* event) override;   //重写虚函数

private:
    Ui::MyQtAppProjectClass ui;

};

重写QObject的虚函数,timerEvent(QTimerEvent* event)

#include "MyQtAppProject.h"
#include<QDateTime>
#include<QDebug>

MyQtAppProject::MyQtAppProject(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    startTimer(1000);
}

void MyQtAppProject::timerEvent(QTimerEvent* event)
{
    QDateTime datatime = QDateTime::currentDateTime();
    QString str = datatime.toString("yyyy.MM.dd hh:mm:ss");
    ui.label->setText(str);
}

通过 startTimer(1000) 来触发定时器事件处理函数,参数 QTimerEvent* event 包含一个timerId()的方法,来获取 startTimer(1000) 的返回值。这样就可以创建多个定时器。

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。