自学内容网 自学内容网

QT5 获取实时时间并刷新在Label中显示

 功能实现的流程:

首先定义一个定时器,当定时时间超时时进入槽函数 timer_reflash() 槽函数用于定时刷新 label_systime 中的时间,getSysTime()函数用于获取时间并处理成想要显示的格式并通过myTime返回

 设置label名字

显示时间的label名字叫:label_systime

要包含的头文件

#include <QTimer>
#include <QDateTime>

widget.h

#ifndef WIDGET_H
#define WIDGET_H
#include <QTimer>
#include <QDateTime>
#include <QWidget>
#include <qdebug.h>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
private slots:
    void timer_reflash();
private:
    Ui::Widget *ui;
    QString getSysTime();
    QString myTime;
};
#endif // WIDGET_H

widget.c

#include "widget.h"
#include "ui_widget.h"



Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QTimer* getSysTimeTimer=new QTimer(this);//定义一个定时器,计时结束后进行刷新时间
    connect(getSysTimeTimer,SIGNAL(timeout()),this,SLOT(timer_reflash()));//在槽函数刷新系统时间
    getSysTimeTimer->start(100);//系统日期刷新时间
}

Widget::~Widget()
{
    delete ui;
}

void Widget::timer_reflash()
{
    ui->label_systime->setText(getSysTime());
}

QString Widget::getSysTime()
{
    QDateTime currentTime=QDateTime::currentDateTime();
    QDate date=currentTime.date();
    int year=currentTime.date().year();
    //   int year=date.year();
    int month=date.month();
    int day=date.day();

    QTime time=currentTime.time();
    int hour=time.hour();
    int min=time.minute();
    int sec=time.second();

    return myTime=QString("%1-%2-%3 %4:%5:%6")
            .arg(year,2,10,QChar('0'))
            .arg(month,2,10,QChar('0'))
            .arg(day,2,10,QChar('0'))
            .arg(hour,2,10,QChar('0'))
            .arg(min,2,10,QChar('0'))
            .arg(sec,2,10,QChar('0'));
}

 


原文地址:https://blog.csdn.net/lhz7788/article/details/143779203

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!