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

61常用控件_QDateTimeEdit的使用

目录

代码⽰例: 实现⽇期计算器


使用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)时间日期任意一个改变时触发

代码⽰例: 实现⽇期计算器

1) 在界⾯上创建两个 QDateTimeEdit 和⼀个按钮, ⼀个 label
QDateTimeEdit objectName dateTimeEdit_old dateTimeEdit_new

2)编写计算按钮的slot函数
使用daysTo函数可以计算两个日期的天数.
使用secsTo函数可以计算两个时间的秒数.
通过(秒数/3600)换算成小时数,再余上24得到零几个小时.
使用QString::number 把整数转成QString进行拼接.
3) 执⾏程序, 观察结果

 

年份得是4位数字
2000年之前,当时的年份都是用2位数字来表示的
1998 -> 98 => 干年虫
当到2000,也就是00 当时的很多程序就都出bug了~~

通过一些特殊字符来描述时间日期的格式
2023年01月01日
2023-01-01
2023/01/01
01/01/2023

日常使用的时间日期的格式,没有一个统一的标准~~

这里哪个字母表示什么含义,这个事情千万不要背!!背容易背错
每次用,每次去查一下!!!
不同的语言,不同的库,这里的格式化字符的含义还不一样
有的是用M表示月份,m表示分钟
有的是用m表示月份,M表示分钟
有的是H表示小时,有的是用h
有的是用s表示秒,S表示毫秒
也有的是用S表示秒,s表示毫秒

Qt::LocalTime:显示本地时间。
Qt::UTC:显示协调世界时 (UTC)。
UTC是标准时间,科学家通过原子钟~~
实际生活中,存在一个“时差的问题”
引入时差~~时差就是在标准时间基础上计算一个时间的差值~~
北京时间“东八区”
咱们用的localTime就是UTC 的基础上 +8 h
英国格林威治天文台~~(标准时间)
0点(他们是半夜),咱们是8点(咱们已经天亮了)

一个国家南北地区,经纬度不同,也是有时差的

时间计算器,计算两个时间中间的间隔是多少天/多少小时~~
Time Edit
Date Edit
Date/Time Edit
QDateTime提供了两个函数:
daysTo计算两个时间的日期的差值.
secsTo计算两个时间的秒数的差值.

计算相隔日期几天零几小时:

int days = (seconds / 3600) / 24

int hours =(seconds / 3600) % 24;
seconds是一个非常大的数字,这两个时间日期中间隔了多少秒~~
首先除以一个3600,换算成小时了.这两个时间中间隔了多少小时,
重点是关心,多出来的零头
比如这里的结果是100h(包含好几天了),重点是看,这里的零头是多少~~

相关文章:

  • 【LeetCode Hot100】贪心篇
  • Python基本语法(函数partial)
  • 生成式 AI 的优势
  • AI 大模型常见面试题(及内容解析)
  • cpp细碎知识点
  • asp.net客户管理系统批量客户信息上传系统客户跟单系统crm
  • 给QCustomPlot添加一个QScrollBar滚动条、限制缩放范围、自动设置大小和右边栏垂直缩放
  • 基于springboot的金院银行厅预约系统的设计及实现(源码+lw+部署文档+讲解),源码可白嫖!
  • ubuntu使用apt安装软件
  • 【2025软考高级架构师】——数据库系统(10)
  • 用Ensaio下载GIS数据
  • 论微服务架构及其应用
  • C++ STL vector容器详解:从原理到实践
  • # 基于词袋模型(BoW)的猫狗图像分类实践
  • 项目管理进阶:深入学习企业软件研发管理体系架构方案【附全文阅读】
  • 基于 JSP 和 Servlet 的数字信息分析小应用
  • 算法笔记。质数筛算法
  • 琴生不等式 (Jensen‘s Inequality)
  • 【quantity】7 角度单位模块(angle.rs)
  • 论系统安全架构设计及其应用
  • 一种声音·阿甘本|即将到来的中世纪;“新”与“旧”……
  • 独家 |《苏州河》上海上演,编剧海飞:上海的风能吹透我
  • 舱位已排到月底,跨境电商忙补货!美线订单大增面临爆舱,6月运价或翻倍
  • 最高人民法院、中国证监会联合发布《关于严格公正执法司法 服务保障资本市场高质量发展的指导意见》
  • 杨文庄当选中国人口学会会长,曾任国家卫健委人口家庭司司长
  • 党建评:对违规宴饮等问题要坚决露头就打