欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 【Qt】输入类控件QDateTimeEdit

【Qt】输入类控件QDateTimeEdit

2024/10/24 13:30:53 来源:https://blog.csdn.net/dab112/article/details/141180311  浏览:    关键词:【Qt】输入类控件QDateTimeEdit

目录

输入类控件QDateTimeEdit

例子:实现日期计算器


输入类控件QDateTimeEdit

  • QDate Edit作为日期的微调框

  • QTime Edit作为时间的微调框

  • QDateTimeEdit作为时间日期的微调框

下面主要讲解QDateTimeEdit:

核心属性

属性说明
dateTime
时间⽇期的值. 形如 2000/1/1 0:00:00
date
单纯⽇期的值. 形如 2001/1/1
time
单纯时间的值. 形如 0:00:00
displayFormat
时间⽇期格式. 形如 yyyy/M/d H:mm
  • y 表⽰年份
  • M 表⽰⽉份
  • d 表⽰⽇期
  • H 表⽰⼩时
  • m 表⽰分钟
  • s 表⽰秒
注意: 这⾥的格式化符号的含义, 不要记忆. 不同语⾔/库的设定规则是存在差异的. ⼀定是⽤的时候再去查
minimumDateTime
最⼩时间⽇期
maximumDateTime
最⼤时间⽇期
timeSpec
  • Qt::LocalTime :显⽰本地时间。
  • Qt::UTC :显⽰协调世界时(UTC)。
  • Qt::OffsetFromUTC :显⽰相对于UTC的偏移量(时差).

displayFormat可以通过一些特殊字符来描述时间日期的格式

例如:

2000年01月01日

2000-01-01

2000/01/01

...

日常使用的时间日期的格式,没有一个统一的标准。

关于 本地时间(LocalTime) 和 协调世界时(UTC)

UTC,显示协调世界时(UTC),这是世界标准时间,是科学家通过原子钟获得的。

在实际的生活中,存在一个“时差的问题”,时差就是在标准时间基础上计算时间的差值。

北京时间,就是在“东八区”;localTime就是在UTC的基础上 +8h

标准时间,就是在英国格林威治天文台时间。

核心信号

信号说明
dateChanged(QDate)
⽇期改变时触发.
timeChanged(QTime)
时间改变时触发.
dateTimeChanged(QDateTime)
时间⽇期任意⼀个改变时触发.

例子:实现日期计算器

时间计算器:计算俩个时间中的间隔是多少天?多少小时?

在QDateTime中提供了俩个函数:

daysTo 计算俩个时间的日期的差值。

secsTo 计算俩个时间的秒数的差值。

(1)设置俩个时间日期微调框、一个按钮、一个标签

(2)初始化控件

 

(2)建立按钮的slot函数

(3)执行结果

(4)代码演示

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//初始化ui->pushButton->setText("提交");ui->label->setText(" ");
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{//计算设置的日期时间值QDateTime timeOld = ui->dateTimeEdit->dateTime();QDateTime timeNew = ui->dateTimeEdit_2->dateTime();//计算日期差值int seconds = timeOld.secsTo(timeNew);//根据日期秒差计算相差的天+小时+分钟+秒int days = seconds / 3600 / 24;int hours = (seconds / 3600) % 24;int mins = (seconds / 60) % 60;int secs = seconds % 60;//设置label的值ui->label->setText(QString("相差时间:"+ QString::number(days) + " 天,"+ QString::number(hours) + " 小时,"+ QString::number(mins) + " 分钟,"+ QString::number(secs) + " 秒。"));
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com