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)!