目录
输入类控件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
注意: 这⾥的格式化符号的含义, 不要记忆. 不同语⾔/库的设定规则是存在差异的. ⼀定是⽤的时候再去查 |
minimumDateTime | 最⼩时间⽇期 |
maximumDateTime | 最⼤时间⽇期 |
timeSpec |
|
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) + " 秒。"));
}