当前位置: 首页 > article >正文

Qt常用控件——QDateTimeEdit

文章目录

    • 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最大日期时间
timeSpecQt::LocalTime:显示本地时间
Qt::UTC:显示协调世界时
Qt::OffsetFromUTC:显示相当于UTC的偏移量(时差)

本地时间和协调世界时:

UTC时间是基于原子钟的标准时间,不受地球自转的影响

计算机内部使用的就是基于UTC时间

本地时间则是基于不同时区,对UTC时间做出了一些调整

核心信号:

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

时间计算器

计算机两个时间中间的间隔是多少天/小时

界面布局:

image-20240915164536845

代码示例:

#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提供了两个函数:

  1. daysTO计算日期差值
  2. secsTo计算秒数差值

这个daysTo计算日期的时候,只有日期不一样,就会计算,不看后面的小时,例如:

2024/9/15 23:00 – > 2024/9/16 00:00,按理说是0天零1个小时,但是daysTo会计算成1天

image-20240915170408534


http://www.kler.cn/a/309248.html

相关文章:

  • qt QKeySequence详解
  • 数据挖掘(九)
  • HTTP协议基础
  • 基于迭代重加权最小二乘法的算法及例程
  • 10款PDF合并工具的使用体验与推荐!!!
  • 解决表格出现滚动条样式错乱问题
  • 【华为OD】2024D卷——生成哈夫曼树
  • CAD图纸加密软件哪个好?10款2024主流CAD图纸加密软件分享!
  • 如何利用Samba跨平台分享Ubuntu文件夹
  • 电路设计学习(一)
  • 【Day14-单例设计模式动态代理】
  • 一文吃透JVM面试八股文
  • 每日学习一个数据结构-DFA确定有限状态机
  • 【linux】VisiData:强大的命令行数据处理工具
  • 跟李沐学AI:序列到序列seq2seq
  • 本地部署大模型并使用知识库Windows下Ollama+Docker+MaxKB安装的记录
  • 影刀RPE学习——自动化
  • 地大信息-基础信息平台 GetImg 任意文件读取漏洞复现
  • http和https分别是什么?区别是什么?
  • GO GIN SSE DEMO
  • Springboot项目打war包运行及错误解决
  • SpringCloud Alibaba入门简介
  • 最优化理论与自动驾驶(一):概述
  • 你认为嵌入式软件开发的尽头是什么?
  • 了解 React 应用程序中的渲染和重新渲染:它们如何工作以及如何优化它们
  • NEXT.js 中间件 NextResponse.redirect 无效