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

【Qt】输入类控件QDateTimeEdit

目录

输入类控件QDateTimeEdit

例子:实现日期计算器


输入类控件QDateTimeEdit

  • QDate Edit作为日期的微调框

  • QTime Edit作为时间的微调框

  • 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的偏移量(时差).

displayFormat可以通过一些特殊字符来描述时间日期的格式

例如:

2000年01月01日

2000-01-01

2000/01/01

...

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

关于 本地时间(LocalTime) 和 协调世界时(UTC)

UTC,显示协调世界时(UTC),这是世界标准时间,是科学家通过原子钟获得的。

在实际的生活中,存在一个“时差的问题”,时差就是在标准时间基础上计算时间的差值。

北京时间,就是在“东八区”;localTime就是在UTC的基础上 +8h

标准时间,就是在英国格林威治天文台时间。

核心信号

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

例子:实现日期计算器

时间计算器:计算俩个时间中的间隔是多少天?多少小时?

在QDateTime中提供了俩个函数:

daysTo 计算俩个时间的日期的差值。

secsTo 计算俩个时间的秒数的差值。

(1)设置俩个时间日期微调框、一个按钮、一个标签

(2)初始化控件

 

(2)建立按钮的slot函数

(3)执行结果

(4)代码演示

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//初始化ui->pushButton->setText("提交");ui->label->setText(" ");
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{//计算设置的日期时间值QDateTime timeOld = ui->dateTimeEdit->dateTime();QDateTime timeNew = ui->dateTimeEdit_2->dateTime();//计算日期差值int seconds = timeOld.secsTo(timeNew);//根据日期秒差计算相差的天+小时+分钟+秒int days = seconds / 3600 / 24;int hours = (seconds / 3600) % 24;int mins = (seconds / 60) % 60;int secs = seconds % 60;//设置label的值ui->label->setText(QString("相差时间:"+ QString::number(days) + " 天,"+ QString::number(hours) + " 小时,"+ QString::number(mins) + " 分钟,"+ QString::number(secs) + " 秒。"));
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IO进程(8)
  • pymysql 与 MySQL数据库交互
  • 开发团队如何应对突发的技术故障和危机?从网易云音乐故障谈起
  • 小程序路由传参和获取页面栈方法
  • 45.5【C语言】typedef
  • 设计模式(三)
  • ctfshow之web29~web51
  • 编译运行 llama.cpp (vulkan, Intel GPU SYCL)
  • 【数学分析笔记】第2章第4节收敛准则(1)
  • ES之二:centos7安装kibana和IK分词器
  • React的生命周期方法以及React 18之后的变化
  • 时序预测|基于贝叶斯BO-卷积-双向门控单元-注意力机制的单变量时间序列预测模型BO-CNN-BiGRU-Attention
  • SMF05C.TCT TVS二极管阵列用于ESD和锁定保护芯片IC
  • github源码指引:C++嵌入式WEB服务器
  • JAVA面试题--ES
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • angular学习第一篇-----环境搭建
  • css属性的继承、初识值、计算值、当前值、应用值
  • Java,console输出实时的转向GUI textbox
  • JavaScript HTML DOM
  • JavaScript 基础知识 - 入门篇(一)
  • Java教程_软件开发基础
  • Laravel 菜鸟晋级之路
  • Laravel 中的一个后期静态绑定
  • PHP的Ev教程三(Periodic watcher)
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • python3 使用 asyncio 代替线程
  • socket.io+express实现聊天室的思考(三)
  • text-decoration与color属性
  • Travix是如何部署应用程序到Kubernetes上的
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 十年未变!安全,谁之责?(下)
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 一个完整Java Web项目背后的密码
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (1)Android开发优化---------UI优化
  • (1)Jupyter Notebook 下载及安装
  • (3)nginx 配置(nginx.conf)
  • (8)STL算法之替换
  • (9)目标检测_SSD的原理
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (二)丶RabbitMQ的六大核心
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (转)C#调用WebService 基础