Qt常用控件之 日期微调框QDateTimeEdit

日期微调框QDateTimeEdit

QDateTimeEdit 是一个日期微调框控件,它可以选择年月日和时分

Qt 中还有 QDateEdit 只能微调年月日的控件和 QTimeEdit 只能微调时分的控件。

QDateTimeEdit属性

属性 说明
dateTime 时间和日期的值。
date 仅是日期的值。
time 仅是时间的值。
displayFormat 时间日期的格式。
y 表示年份。
M 表示月份。
H表示小时。
m表示分钟。
s 表示秒。
minimumDateTime 最小时间日期。
maximumDateTime 最大时间日期。
timeSpec Qt::LocalTime 显示本地时间。
Qt::UTC 显示世界时(UTC)。
Qt::OffsetFromUTC 显示相对于 UTC 的偏移量(时差)。

QDateTimeEdit信号

信号 说明
dateChanged(QDate) 日期改变时触发。
timeChanged(QTime) 时间改变时触发。
dateTimeChanged(QDateTi me) 时间日期任意一个改变时触发。

计算两个QDateTimeEdit的时间差

将两个 QDateTimeEdit 的时间分别用两个 QDateTime 类型的变量保存起来,再调用 daysTo() (计算两个日期的天数)或 secsTo() (计算两个日期的秒数),来获取时间的差值:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
    QDateTime old_time=ui->dateTimeEdit->dateTime();
    QDateTime new_time=ui->dateTimeEdit_2->dateTime();

    int days =old_time.daysTo(new_time);

    QString content;
    content="已经过去了:"+QString::number(days)+"天";
    ui->label->setText(content);
}

Qt常用控件之 日期微调框QDateTimeEdit_第1张图片

注意 daysTo() 这个接口会把不满一天的时间也算为一天,如 2024/12/21 22:002024/12/22:00 也会被计算成过去一天。要想要精确地计算时间,可以使用 secsTo() 获取秒数后自行书写代码逻辑。

你可能感兴趣的:(qt,开发语言,c++,qt6.3,qt5)