Qt中利用定时器QTimer准实时显示当前日期和时间
Qt中,QDate类对应日期,QTime类对应时间。这两种类可以获取当前时间,但需要一个定时器来准实时显示当前日期和时间。
下面说明方法:
1. 在工程中声明一个全局QTimer对象
- QTimer *timer;
QTimer *timer;
2. 在构造函数中定义QTimer,并建立信号槽关系,同时设定时间启动(你也可以再其他地方启动)。
- timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), this, SLOT(qtimeSlot()));
- timer->start(1000);
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(qtimeSlot()));
timer->start(1000);
这里设定1秒钟的定时器。
3. 编写显示日期和时间的槽函数
- void myQtEx::qtimeSlot()
- {
- QTime qtimeObj = QTime::currentTime();
- QString strTime = qtimeObj.toString("h:m ap");
- strTime.prepend(" Time is: ");
- QDate qdateObj = QDate::currentDate();
- QString strDate = qdateObj.toString("dddd, MMMM d, yyyy"); //星期、月份、天、年
- strDate.prepend("Today is: ");
- strDate.append(strTime);
- ui.timeLabel->setText (strDate);
- //qDebug() << strTime;
- //qDebug() << strDate;
- }
void myQtEx::qtimeSlot()
{
QTime qtimeObj = QTime::currentTime();
QString strTime = qtimeObj.toString("h:m ap");
strTime.prepend(" Time is: ");
QDate qdateObj = QDate::currentDate();
QString strDate = qdateObj.toString("dddd, MMMM d, yyyy"); //星期、月份、天、年
strDate.prepend("Today is: ");
strDate.append(strTime);
ui.timeLabel->setText (strDate);
//qDebug() << strTime;
//qDebug() << strDate;
}
4. 获得结果如下