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

【Qt】QDateTimeEdit

在Qt中,QDateEdit是用于选择日期的微调框,QTimeEdit是用于选择小时和分钟的微调框

QDateTimeEdit则是基于QDateEdit和QTimeEdit的组合控件,能够同时显示日期和时间,并允许用户以交互方式编辑日期 

常用属性

属性说明
dateTime时间日期的值,形如2000/1/1 0:00
date单纯日期的值,形如2000/1/1
time单纯时间的值,形如0:00
displayFormat

时间日期格式,形如yyyy/M/d H:mm   2024/07/31 09:35

  • y表示年份
  • M表示月份
  • d表示日期
  • H表示小时
  • m表示分钟
  • s表示秒
minimumDateTime最小时间日期
maximumDateTime最大时间日期
timeSpec
  • Qt::LocalTime:显示本地时间
  • Qt::UTC:显示协调世界时(UTC)
  • Qt::OffsetFromUTC:显示相对于UTC的偏移量(时差)

核心信号

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

QDateTime

QDateTime是处理日期和时间的类,提供了丰富的功能和方法来管理和操作日期时间数据,支持高精度和灵活的操作

常用API

  • 获取日期/时间
    //静态成员函数
    static QDateTime currentDateTime();//返回当前本地日期时间
    static QDateTime currentDateTimeUTC();//返回当前UTC日期时间
    //成员函数
    QDate date() const;//返回日期部分
    QTime time() const;//返回时间部分
    
  • 设置日期/时间

    void setDate(const QDate &date);//设置日期部分
    void setTime(const QTime &time);//设置时间部分
    void setDateTime(const QDateTime &dateTime);//设置日期和时间
  • 格式化和解析

    //将日期时间对象格式化为指定格式的字符串
    QString toString(Qt::DateFormat format = Qt::TextDate);
    //将指定格式的日期时间字符串,转化为QDateTime
    static QDateTime fromString(const QString &string, Qt::DateFormat format = Qt::TextDate);
  • 日期/时间运算

    QDateTime addDays(qint64 days);//增加指定天数后的日期时间
    QDateTime addSecs(qint64 secons);//增加指定秒数后的日期时间
    QDateTime addMonths(int months);//增加指定月数后的日期时间
    QDateTime addYears(int years);//增加指定年数后的日期时间
    //计算两个日期时间之间的差值
    qint64 daysTo(const QDateTime &other);//计算相差多少天,计算时只看日期不看时间
    qint64 secsTo(const QDateTime &other);//计算相差多少秒
    
  • 时区操作

    QDateTime toLocalTime();//将UTC时间转换成本地时间返回
    QDateTime toUTC();//将本地时间按UTC时间返回
    

示例:计算两个日期之间相差的时间 

#include "widget.h"
#include "ui_widget.h"#include <QCalendarWidget>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置显示格式ui->dateTimeEdit_past->setDisplayFormat("yyyy-M-d h:mm:ss");ui->dateTimeEdit_cur->setDisplayFormat("yyyy-M-d h:mm:ss");
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{//获取两个日期时间QDateTime pastTime = ui->dateTimeEdit_past->dateTime();QDateTime curTime = ui->dateTimeEdit_cur->dateTime();int seconds = pastTime.secsTo(curTime);//计算相差的天数和小时数int hours = (seconds / 3600) % 24;int days = (seconds / 3600 / 24);ui->label->setText(QString("已经爱你") + QString::number(days) + "天零"+ QString::number(hours) + "小时");
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一刷代码随想录(贪心5)
  • ChatGPT:GPT,GPT2,GPT3,Prompt
  • 请转告HPC计算AI计算单位,选对存储事半功倍
  • 元气森林|每天拆解一个品牌营销方案
  • 根据《广东省政务服务数字化条例》规定,政务服务数字化,是指将___广泛应用于政务服务,推动政务服务更加智能、便捷、高效的活动。()
  • JavaScript (十)——JavaScript 比较 和 逻辑运算符
  • 河南萌新联赛2024第(三)场:河南大学
  • C语言程序设计23
  • 【MySQL】用户管理连接池原理{数据库权限/连接池/mysql访问逻辑}
  • 【计算机毕业设计】​720图书馆智能选座系统
  • Java | Leetcode Java题解之第312题戳气球
  • 操作系统_内存管理学习心得
  • Mojo编程语言与云服务及微服务架构的协同之道
  • K8S 卸载旧版本安装其他版本
  • Win10系统,使用钉钉会议共享屏幕的时候,别人看到的都是全黑或全白屏幕
  • [译]前端离线指南(上)
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • create-react-app做的留言板
  • echarts花样作死的坑
  • Git学习与使用心得(1)—— 初始化
  • isset在php5.6-和php7.0+的一些差异
  • JAVA 学习IO流
  • Java编程基础24——递归练习
  • Js基础知识(四) - js运行原理与机制
  • MaxCompute访问TableStore(OTS) 数据
  • Python语法速览与机器学习开发环境搭建
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 从零开始学习部署
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 前端js -- this指向总结。
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 突破自己的技术思维
  • 温故知新之javascript面向对象
  • Linux权限管理(week1_day5)--技术流ken
  • ​configparser --- 配置文件解析器​
  • # 数论-逆元
  • #每日一题合集#牛客JZ23-JZ33
  • #数据结构 笔记一
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (19)夹钳(用于送货)
  • (4.10~4.16)
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C语言)球球大作战
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (四)js前端开发中设计模式之工厂方法模式
  • (转) ns2/nam与nam实现相关的文件
  • (转) 深度模型优化性能 调参
  • (转)程序员技术练级攻略
  • (转)负载均衡,回话保持,cookie
  • (转载)hibernate缓存
  • ***测试-HTTP方法
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net经典笔试题