Qt DateTimeEdit(时间⽇期的微调框)
使⽤ QDateEdit 作为⽇期的微调框.
使⽤ QTimeEdit 作为时间的微调框
使⽤ QDateTimeEdit 作为时间⽇期的微调框.
这⼏个控件⽤法⾮常相似, 我们以 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的偏移量(时差). |
关于 本地时间(LocalTime) 和 协调世界时(UTC)
UTC 时间是⼀个基于原⼦钟的标准时间. 不受地球的⾃转周期影响. 和格林威治时间 (GMT) 是
⾮常接近的. 科学家会通过精密的设备来测量并维护.咱们的计算机内部使⽤的时间就是基于 UTC 时间.
本地时间则是基于不同的时区, 对 UTC 时间做出了⼀些调整. ⽐如咱们使⽤的北京时间, 位于
“东⼋区”, 就需要在 UTC 时间基础上 +8 个⼩时的时差.
核⼼信号
信号 | 说明 |
---|---|
dateChanged(QDate) | ⽇期改变时触发. |
timeChanged(QTime) | 时间改变时触发. |
dateTimeChanged(QDateTime) | 时间⽇期任意⼀个改变时触发. |
QDateTime datetime_1 = ui->dateTimeEdit->dateTime();QDateTime datetime_2 = ui->dateTimeEdit_2->dateTime();// 日期差//int day = datetime_1.daysTo(datetime_2); // 不足一天,当一天// 秒差 把年月日时分秒的差换成秒int s = datetime_1.secsTo(datetime_2);int day = s/(60*60*24);int h = (s%(60*60*24))/(60*60);ui->label->setText(QString::number(day) + "天 " + QString::number(h) + "小时");