文章目录
- QDateTimeEdit核心属性及信号
- 时间计算器
QDateTimeEdit核心属性及信号
QDateEdit
作为日期的微调框QTimeEdit
作为时间的微调框QDateTimeEdit
作为时间日期的微调框
它们的使用方式都是类似的,本篇以QDateTimeEdit
作为示例
核心属性:
属性 | 说明 |
---|---|
dateTime | 时间日期的值(形如2001/09/15 17:00:00 ) |
date | 单纯日期的值 |
time | 单纯时间的值 |
displayFormat | 时间日期的格式,形如yyyy/M/d H:mm y 表示年M 表示月份d 表示日期H 表示小时m 表示分钟s 表示秒**Tips:**这里的格式化符合,不同的库,设置规则可能不一样 |
minimumDateTime | 最小日期时间 |
maximumDateTime | 最大日期时间 |
timeSpec | Qt::LocalTime :显示本地时间Qt::UTC :显示协调世界时Qt::OffsetFromUTC :显示相当于UTC的偏移量(时差) |
本地时间和协调世界时:
UTC
时间是基于原子钟的标准时间,不受地球自转的影响计算机内部使用的就是基于UTC时间
本地时间则是基于不同时区,对UTC时间做出了一些调整
核心信号:
信号 | 说明 |
---|---|
dateChanged(QDate) | 日期改变时触发 |
timeChanged(QTime) | 时间改变时触发 |
dateTimeChanged(QDateTime) | 时间日期任意一个改变时触发 |
时间计算器
计算机两个时间中间的间隔是多少天/小时
界面布局:
代码示例:
#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_calc_clicked()
{//获取输入框时间QDateTime timeBegin = ui->dateTimeEdit_begin->dateTime();QDateTime timeEnd = ui->dateTimeEdit_end->dateTime();qDebug() << timeBegin << timeEnd;//计算日期差值//int days =timeBegin.daysTo(timeEnd);//秒数int seconds =timeBegin.secsTo(timeEnd);//计算日期值int days = (seconds / 3600) / 24;//秒数换算成小时int hours = (seconds / 3600) % 24;//qDebug() << days << hours;ui->label_ret->setText(QString("出生已经:") + QString::number(days) + QString("天零") + QString::number(hours) + QString("小时"));
}
QDate
提供了两个函数:
daysTO
计算日期差值secsTo
计算秒数差值这个
daysTo
计算日期的时候,只有日期不一样,就会计算,不看后面的小时,例如:2024/9/15 23:00 – > 2024/9/16 00:00,按理说是0天零1个小时,但是
daysTo
会计算成1天