Qt进阶-显示当前时间及应用程序运行总时间
首先在界面上拖入一个QLabel控件(label_totalTime)、一个QLCDNumber控件(lcdNumber),参考代码如下:
QDateTime startTime; //开始计时的时间
QDateTime currentTime; //当前时间
QString strInterval; //运行总时间
QTimer m_tUpdateTime; //定时器
void init()
{
startTime = QDateTime::currentDateTime();
//更新时间
connect(&m_tUpdateTime, &QTimer::timeout, this, [=]()
{
//显示当前时间
currentTime = QDateTime::currentDateTime(); //当前时间
QString t = currentTime.toString("yyyy-MM-dd hh:mm:ss");
if (currentTime.time().second() % 2 == 0)
{
t[16] = ' ';
}
ui->lcdNumber->display(t);
//显示运行总时间
QDateTime interval(QDate(2000, 1, 1), QTime(0, 0, 0, 0)); //以2000-1-1 0:0:0::0为基准,加上程序运行的总秒数,再用toString转换
strInterval = interval.addSecs(startTime.secsTo(currentTime)).toString("dd天hh时mm分");
strInterval = strInterval.replace(1, 1, QString::number(QString(strInterval[1]).toInt() - 1));
ui->label_totalTime->setText(strInterval);
});
m_tUpdateTime.start(50); //开启时间定时器
}