Qt中利用定时器QTimer准实时显示当前日期和时间(有自己的思考)

时间:2022-08-24 00:11:27

Qt中利用定时器QTimer准实时显示当前日期和时间

Qt中,QDate类对应日期,QTime类对应时间。这两种类可以获取当前时间,但需要一个定时器来准实时显示当前日期和时间。

下面说明方法:

1. 在工程中声明一个全局QTimer对象

[cpp]  view plain  copy
  1. QTimer *timer;  

2. 在构造函数中定义QTimer,并建立信号槽关系,同时设定时间启动(你也可以再其他地方启动)。

[cpp]  view plain  copy
  1. timer = new QTimer(this);  
  2. connect(timer, SIGNAL(timeout()), this, SLOT(qtimeSlot()));  
  3. timer->start(1000);  

这里设定1秒钟的定时器。

3. 编写显示日期和时间的槽函数

[cpp]  view plain  copy
  1. void myQtEx::qtimeSlot()  
  2. {   QTime qtimeObj = QTime::currentTime();
            QString strTime = qtimeObj.toString("hh:mm:ss");
            QDate qdateObj = QDate::currentDate();
            QString strDate = qdateObj.toString("yyyy-MM--dd");
            QString str=QString("%1 %2").arg(strDate).arg(strTime);
           ui->time->setText (str);
  3. }  
4.在构造函数中调用一次qtimeSlot函数,用来确定第一次就显示正确时间。