目录

1  简介

2  创建

2.1  普通的

2.2  带QDateTimeEdit的

2.3  带QDate的

2.4  带QTime的

3  QDateTime,QDate与QTime

3.1  QDateTime

3.1.1  构造函数

3.1.2  调整时间

3.1.3  计算时间差

3.2  QDate

3.2.1  构造函数

3.2.2  调整日期

3.2.3  计算时间差

3.2.4  获取时间

3.3  QTime

3.3.1  构造函数

3.3.2  调整时间

3.3.3  计算时间差

3.3.4  计时

3.3.5  获取时间

4  显示格式

4.1  格式符

4.1.1  日期格式

4.1.2  时间格式

4.2  设置 setDisplayFormat()

4.3  获取 displayFormat()

5  section控制

5.1  获取section个数 QDateTimeEdit()

5.2  选中指定索引的section setCurrentSectionIndex()

5.3  获取选中的section索引

5.4  选择指定含义section setCurrentSection()

5.5  获取选中的区域部分 currentSection()

5.6  获取指定索引位置的区域 sectionAt()

5.7  获取指定section的文本内容 setionText()

6  日期和时间范围

6.1  整体设置日期与时间

6.1.1  最大值

6.1.2  最小值

6.1.3  设置范围 setDateTimeRange()

6.2  只设置日期

6.3  只设置时间

7  日历选择控件

7.1  设置日历选择控件 setCalendarPopup()

7.2  获取是否弹出选择控件 calendarPopup()

8  获取日期与时间

8.1  获取日期与时间 dateTime()

8.2  只获取日期 date()

8.3  只获取时间 time()

9  信号

9.1  日期与时间有一个改变就触发的信号 dateTimeChanged()

9.2  只有日期改变时触发的信号 dateChanged()

9.3  只有时间改变时触发的信号 timeChanged()

1  简介

2  创建

有四种构造函数

  • 第一个是普通创建,只用给一个父对象
  • 第二个设置日期和时间
  • 第三个只设置日期
  • 第四个只设置时间

2.1  普通的

初始值是2020/1/1 0:00

把光标放在2000上再按一下向上按钮会加一,放到月,日,时间上再按下向上按钮都会增加数值

每一段会有最大值和最小值,比如月的最大值是12,最小值是1,默认情况下没有设置数据循环,而且当月到12时再往上调不会累加到年

这个控件最大值为9999年12月31日23:59,最小值为1752年9月14日 0:00

2.2  带QDateTimeEdit的

我们选用当前时间

2.3  带QDate的

2.4  带QTime的

3  QDateTime,QDate与QTime

3.1  QDateTime

3.1.1  构造函数

QDateTime构造函数如下

我们就测试下面这一个

我们现在使用当前时间

3.1.2  调整时间

我们再此时一下addYears()

我们发现add方法中没有加小时和分钟,这个使用加秒替代的,比如我相加20分钟,我应该加入20 * 60秒

比如我们现在使用当前时间,现在我们要加20分钟

刚才用默认初始值测试了一下,发现使用add方法无效

像addYears()这一类方法,我们也可以给一个负的参数,以达到减的效果

3.1.3  计算时间差

我们用现在的时间与标准时间做一个时间差,由于时区原因,相差8小时

返回了28800,这个的单位是秒数

发现相差8小时

3.2  QDate

3.2.1  构造函数

3.2.2  调整日期

3.2.3  计算时间差

3.2.4  获取时间

3.3  QTime

3.3.1  构造函数

3.3.2  调整时间

3.3.3  计算时间差

3.3.4  计时

这个我们搞一下

我们首先创建一个QTime(),就以当前时间为例,如果是空的也可以

之后再搞三个按钮,分别连接三个槽函数

运行之后是这样的

我们点击开始计时

之后再过一阵点击显示结果

再过一阵再点

它这个返回的结果单位是ms

我们点restart和start的效果是一样的,都是从0开始

3.3.5  获取时间

4  显示格式

4.1  格式符

4.1.1  日期格式

4.1.2  时间格式

4.2  设置 setDisplayFormat()

运行结果

窗口的尺寸是我调的,默认状态下窗口不会跟随控件大小改变大小

4.3  获取 displayFormat()

5  section控制

section是指QDateTimeEdit中显示字符串的每一个部分

5.1  获取section个数 QDateTimeEdit()

返回了整形5,说明有5个section,分别为 年 月 日 小时 分钟

5.2  选中指定索引的section setCurrentSectionIndex()

我们搞一个按钮连接这个槽函数

如果把焦点放到后面选中的后面,会重置选中的区域

此时我们选中的2号section

运行之后我们点击一下按钮

现在我们按一下上箭头

发现2号位涨了一个步长

5.3  获取选中的section索引

我们搞一个按钮,搞一个槽函数

运行后我们点击获取section索引按钮

5.4  选择指定含义section setCurrentSection()

参数为QDateTimeEdit.Section,可填入的参数如下

  • QDateTimeEdit.NoSection 不选择区域
  • QDateTimeEdit.AmPmSection 选择上下午区域
  • QDateTimeEdit.MSecSection 选择毫秒区域
  • QDateTimeEdit.SecondSection 选择秒区域
  • QDateTimeEdit.MinuteSection 选择分钟区域
  • QDateTimeEdit.HourSection 选择时间区域
  • QDateTimeEdit.DaySection 选择日区域
  • QDateTimeEdit.MonthSection 选择月区域
  • QDateTimeEdit.YearSection 选择年区域

我们搞一个按钮,再搞一个槽函数

此时我们选择月份区域

运行之后点击一下按钮

5.5  获取选中的区域部分 currentSection()

搞一个按钮和槽函数

它返回的是一个int类型的枚举值,我们依次选择分钟,小时,日,月,年,然后每次选中后都点一下按钮

  • 8 秒的位置
  • 16 小时的位置
  • 256 日的位置
  • 512 月的位置
  • 1024 年的位置

5.6  获取指定索引位置的区域 sectionAt()

搞一个按钮与槽函数

我们现在获取 日 的位置

运行后直接点击一下按钮

5.7  获取指定section的文本内容 setionText()

为了能让按钮放得开,我们拉大窗口

然后再搞一个按钮,一个槽函数

运行之后直接点一下按钮

获取到了 日 区域的内容

6  日期和时间范围

6.1  整体设置日期与时间

首先我们需要创建两个QDateTime对象作为最大值与最小值

我们以当前时间作为最大值,以当前时间的两年前作为最小值

6.1.1  最大值

6.1.1.1  设置最大值 setMaximumDateTime()

运行至最大值后手动输入当前时间,之后再点击向上按钮,点完之后发现数值上不去了

6.1.1.2  获取最大值 maximumDateTime()

6.1.1.3  清空设置的最大值 clearMaximumDateTime()

此时可以发现可以超出刚刚设置的最大值

6.1.2  最小值

6.1.2.1  设置最小值 setMinimumDateTime()

运行之后直接显示了最小值

点击向下按钮后,不能使数值变小

6.1.2.2  获取最小值 minimumDateTime()

6.1.2.3  清空设置的最小值 clearMinmumDateTime()

由于设置了最小值,所以起始状态还是设定的最小值

此时按一下向下按钮,发现可以突破刚刚设置的最小值

6.1.3  设置范围 setDateTimeRange()

运行之后显示设置的最小值

此时按下按钮,不能调整数值

可以输入设置的最大值

此时按向上按钮,不能调整数值

设置好同样可以获取最大值与最小值

6.2  只设置日期

与上方整体设置方法相同,参数更改为QDate

6.3  只设置时间

与上方整体设置方法相同,参数更改为QTime

7  日历选择控件

7.1  设置日历选择控件 setCalendarPopup()

设置为True后,我们显示的状态是这样的

我们点一下右侧的下拉菜单

会出现日历选择控件

7.2  获取是否弹出选择控件 calendarPopup()

下面这两个由于要创建QCalendarWidget控件,我们放到后面去讲

  • 设置自定义的日历控件 setCalendarWidget()
  • 获取自定义的日历控件 calendarWidget()

8  获取日期与时间

我们就使用初始值进行获取

8.1  获取日期与时间 dateTime()

8.2  只获取日期 date()

8.3  只获取时间 time()

我们发现以上返回的都为时间日期的对象,我们可以通过本章第二节的内容对其进行操作

9  信号

section完全编辑完毕是触发以上三个信号的先决条件

9.1  日期与时间有一个改变就触发的信号 dateTimeChanged()

可传入改变后的QDateTime对象

为了简洁,我们使用lambda直接来搞

运行后我们点击一下向上按钮

9.2  只有日期改变时触发的信号 dateChanged()

运行后我们点击一下向上按钮

9.3  只有时间改变时触发的信号 timeChanged()

运行后将光标移动到时间区域

按一下向上按钮

46.QDateTimeEdit相关推荐

  1. Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget

    Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget QDateTimeEdit 属性 datetime: date: time: max ...

  2. mysql5.6.46安装教程_鲲鹏云-arm平台 mysql-5.6.46 安装

    1,下载 mysql-5.6.46.tar.gz boost_1_59_0.tar.gz 2,安装依赖 yum install gcc gcc-c++ cmake ncurses-devel biso ...

  3. Redis 难题突破,最经典 46 题含详细解析

    1.什么是 Redis? Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: (1)R ...

  4. 高通为何46亿美元ADAS Veoneer Arriver

    高通为何46亿美元ADAS Veoneer Arriver 彭博9月13日引述消息人士报导,高通正式提案以逾40亿美元收购瑞典先进驾驶辅助系统(ADAS)技术商Veoneer,以超过麦格纳的报价在竞标 ...

  5. Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)

    目录 1.QCalendar日历类 2.QDateTimeEdit时间类 1.QCalendar日历类 QCalendar是一个日历控件,它提供了一个基于月份的视图,允许用户通过鼠标或键盘选择日期,默 ...

  6. Centos7安装编译安装zabbix2.219及mariadb-5.5.46

    mariadb-5.5.46的安装: 首先下载mariadb-5.5.46-linux-x86_64.tar.gz,然后使用tar -xf mariadb-5.5.46-linux-x86_64.ta ...

  7. 编译httpd-2.4.46的RPM包

    目录 一.下载源码 二.编译&排错 2.1.第一次编译,解决依赖包问题. 2.2.第二次编译,解决anaconda导致的环境变量问题 2.3.第三次编译,解决apr版本过低问题 提供 apr- ...

  8. AI一分钟 | 特斯拉再融46亿;腾讯AI Lab宣布开源多标签图像数据集

    ▌特斯拉再融 46 亿 近日,<证券日报>记者登录上海市工商行政管理局官网发现,特斯拉(上海)有限公司的注册资本已由 1 亿元增至 46.7 亿元,这意味着马斯克凭借特斯拉这匾金字招牌在上 ...

  9. 数字证书采用公钥体制进行加密和解密。每个用户有一个私钥,用它进行 (46)。。。

    数字证书采用公钥体制进行加密和解密.每个用户有一个私钥,用它进行 (46) : 同时每个用户还有一个公钥,用于 (47) . X.509标准规定,数字证书由 (48) 发放,将其放入公共目录中,以供用 ...

最新文章

  1. anaconda 更改路径_Anaconda更改Jupyter 默认启动路径
  2. 【.NET 日常开发技巧】一个性能强悍的HttpClient 库
  3. 令牌桶 限速_Go 限流器实战系列(2) Token Bucket 令牌桶
  4. arcgis server site 快速恢复与重建
  5. Python中 模块、包、库
  6. 【344天】我爱刷题系列103(2018.01.15)
  7. 在Ubuntu16.04下安装cmake 和cmake-gui
  8. Find Backpacker Jobs in Australia
  9. google嗅探(简洁实用版)
  10. 新手JDK下载与安装教程
  11. 中国大学Mooc平台,自动下载pdf文档
  12. 支付宝支付加密规则梳理,写的太好了!
  13. 信息系统项目管理师下午论文的一些心得
  14. win10此电脑不见了_Win10如何把控制面板放到桌面上?Win10控制面板不见了解决方法...
  15. 怎么把回收站里的计算机放到桌面,如何在桌面上添加回收站
  16. 升级Mac Catalina后OBS录屏软件麦克风和内置声音输出没有声音的问题
  17. 八年级作文-面对天空
  18. 思科将以6.35亿美元收购网络安全公司OpenDNS
  19. 红米note2能刷机没显示无服务器,红米Note2刷机之后一直停留在开机界面修复教程...
  20. 华为推谷歌系统智能手机火拼微软三星

热门文章

  1. 计算机启动后花屏然后无信号,电脑开机屏幕显示无信号输入的解决方法
  2. Au CC如何将文件导入文件面板?
  3. Linux Shell 批量运行语句
  4. windows 10禁用账户
  5. 超出限定字段截断,鼠标悬停显示全部文字
  6. 汽车加油问题--贪心算法(算法设计与分析)
  7. 使用ChatGPT和EZDML迅速高效生成可运行的软件系统原型
  8. 微型计算机按照结构划分共分为几种,2016计算机一级《MS Office》基础习题与解析...
  9. Django框架(八)--单表增删改查,在Python脚本中调用Django环境
  10. 《给中国学生的第三封信:成功、自信、快乐》