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

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(包含好几天了),重点是看,这里的零头是多少~~

http://www.xdnf.cn/news/3764.html

相关文章:

  • 用Maven定位和解决依赖冲突
  • 研究主题:聊天机器人使用与情感纽带的形成
  • 归并排序【逆序对】
  • 【AI面试准备】数据驱动测试思维与实践指南
  • 使用Node.js搭建https服务器
  • 《Windows 环境下 Qt C++ 项目升级 GCC 版本的完整指南》
  • 如何在WORD WPS中输入英语音标 批量给英语标注音标
  • 【堆】最大堆、最小堆以及GO语言的实现
  • Redis从入门到实战实战篇2
  • 智能家居的OneNet云平台
  • Linux进程间通信(二)之管道1【匿名管道】
  • 【2025软考高级架构师】——数据库系统(10)
  • SpringBoot上传文件到阿里云OSS对象存储
  • 数据赋能(211)——质量管理——数据可验证性原则
  • 【Mytais系列】介绍、核心概念
  • 【浅学】Windows下ffmpeg+nginx+flv将本地视频推流在本地搭建的Web前端页面中播放,超详细步骤
  • C++ 抽象工厂模式详解
  • [Vue]编程式导航
  • C++ 单例模式详解
  • React18组件通信与插槽
  • 数模竞赛的坑,你踩了几个?
  • 源码编译Qt StateMachine
  • 如何在 CentOS 7 命令行连接 Wi-Fi?如何在 Linux 命令行连接 Wi-Fi?
  • 力扣面试150题--二叉树的最大深度
  • 最大子段和 Java
  • 【计算机网络-应用层】解析HTTP会话保持:Cookie与Session的原理与实践
  • 学习黑客网络安全法
  • 26考研 | 王道 | 计算机网络 | 第三章 数据链路层
  • 第一章 初识SpringMVC
  • RUST变量学习笔记