QT显示运行的时间(一个程序计时器)

文章介绍了如何在Qt中使用QTimer和Label实现定时器功能,以及尝试使用QDateTime获取并显示精确到秒的时间差。作者展示了如何在构造函数中创建定时器,以及如何在槽函数中更新和格式化显示时间。
摘要由CSDN通过智能技术生成

一、使用定时器加Label的操作完成:

1、在构造函数(构造函数只会经过运行一次)中添加代码段:

    QTimer *t_time = new QTimer(this);//创建定时器
    //定时器信号与槽函数,信号为超时触发信号,槽函数为自己编写的时间到了后要执行去做的事情。
    connect(t_time, SIGNAL(timeout()), this, SLOT(TimeOutElapsedTimeChange()));
    t_time->start(1000);//设置时间间隔为1s

2、槽函数编写与在.h中的定义添加:

void mainsepsiswidget::TimeOutElapsedTimeChange()
{
    TimeSecond++;
    if(TimeSecond==60)
    {
        TimeSecond=0;
        TimeMinute++;
        if(TimeMinute==60)
        {
            TimeMinute=0;
            TimeHour++;
        }
    }
    if(TimeMinute>9)
    {
        if(TimeSecond>9)
        {
          StrElapsedTime=QString("%1:%2:%3");
        }
        else
        {
          StrElapsedTime=QString("%1:%2:0%3");
        }
    }
    else
    {
        if(TimeSecond>9)
        {
          StrElapsedTime=QString("%1:0%2:%3");
        }
        else
        {
          StrElapsedTime=QString("%1:0%2:0%3");
        }
    }

    //将时间赋值
    StrElapsedTime=StrElapsedTime.arg(TimeHour).arg(TimeMinute).arg(TimeSecond);
    ui->label_2->setText(StrElapsedTime);
}

public slots:
    void TimeOutElapsedTimeChange()

3、类内相关定义:

private:
    int TimeSecond=0;//秒
    int TimeMinute=0;//分
    int TimeHour=0;//小时
    QString StrElapsedTime="00:00:00";

4、运行效果:

二、还未尝试成功:

获取当前时间减去之前的时间,达到时间获取精度的提升,来显示经过了一秒钟的效果,然后再显示上去。

QDateTime begin_time = QDateTime::currentDateTime();             //获取或设置时间
QDateTime end_time = QDateTime::currentDateTime();               //获取或设置时间
QTime m_time;						
m_time.setHMS(0, 0, 0, 0);                                       //初始化数据,时 分 秒 毫秒
m_time.addSecs(begin_time.secsTo(end_time)).toString("hh:mm:ss");//计算时间差(秒),将时间差加入m_time,格式化输出

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值