0、说明

QDateTimeEdit类提供了一个用于编辑Date和Time的Widget,它就像下边这样

QDateTimeEdit允许用户使用键盘编辑Date、或者用方向键来增加或减少Date、Time的值。Date、Time的显示格式由setDisplayFormat()进行设置:

QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate());
dateEdit->setMinimumDate(QDate::currentDate().addDays(-365));
dateEdit->setMaximumDate(QDate::currentDate().addDays(365));
dateEdit->setDisplayFormat("yyyy.MM.dd");

上文中,我们用今天的Date构造了一个QDateTimeEdit对象,并且限制了日期的范围为今天±365天,之后,我们设置了年月日的顺序。

1)使用弹出式日历Widget

QDateTimeEdit允许使用QCalendarWidget来选择日期,通过设置calendarPopup属性完成。除此之外,我们可以用setCalendarWidget()来定制一个特殊的弹出式日历。已经存在的日历Widget可以用calendarWidget()提取。

2)键盘追踪

当启用了keyboard tracking(默认情况下是启用的),每次敲击键盘修改某个字段值时都会发送一个信号,标识了数值更改。

当限制了日期的范围而通过键盘编辑某个字段会导致超出该范围,那么这次编辑就会被阻止。

当禁用了keyboard tracking,那么只有当键盘焦点离开该文本字段字段后才会显示修改。这允许用户通过编辑一个无效的Date-Time来实现一个有效的Date-Time。

1、模块和加载项

Header: #include <QDateTimeEdit>
qmake: QT += widgets
Inherits: QAbstractSpinBox
Inherited By:

QDateEdit and QTimeEdit

2、构造

QDateTimeEdit(QTime time, QWidget *parent = nullptr) 在parent下构造一个空DateTime Editor,其值设置为time
QDateTimeEdit(QDate date, QWidget *parent = nullptr) 在parent下构造一个空DateTime Editor,其值设置为date
QDateTimeEdit(QDateTime datetime, QWidget *parent = nullptr) 在parent下构造一个空DateTime Editor,其值设置为datetime
QDateTimeEdit(QWidget *parent = nullptr) 在parent下构造一个空DateTime Editor

3、静态字段

enum

Section { NoSection, AmPmSection, MSecSection,

SecondSection, MinuteSection, …, YearSection }

这里的Section是QFlags<Section>的typedef(别名)。

其中存储了一些Section值的OR组合。

一个Section就是实际显示时的一个字段,比如显示格式为'yyyy/yy/yyyy',那么Section数目就为3

flags Sections

4、实例字段

字段名

类型

说明

getter、setter

信号、槽

calendarPopup bool 是否允许以日历形式选择日期

calendarPopup()

setCalendarPopup(bool enable)

 
currentSection Section

当前Section。

Section是指当光标位于的字段。

currentSection()

setCurrentSection(QDateTimeEdit::Section section)

 
currentSectionIndex int

当前Section的位置索引。

比如当前Section在第二个字段处,那么该值就是1

currentSectionIndex()

 
date QDate 当前的QDate

date()

setDate(const QDate &date)

dateChanged(const QDate &date)
dateTime QDateTime 当前的QDateTime

dateTime()

setDateTime(const QDateTime &dateTime)

dateTimeChanged(const QDateTime &datetime)
displayFormat QString

展示出来的字符串格式。

格式见

QDateTime::toString() 和QDateTime::fromString()

displayFormat()

setDisplayFormat(const QString &format)

 
displayedSections Sections 当前展示的Section displayedSections()  
maximumDate QDate 最大Date

maximumDate()

setMaximumDate(const QDate &max)

clearMaximumDate()

 
maximumDateTime QDateTime 最大DateTime
QDateTime maximumDateTime() const
void setMaximumDateTime(const QDateTime &dt)
void clearMaximumDateTime()
 
maximumTime QTime 最大Time
QTime maximumTime() const
void setMaximumTime(const QTime &max)
void clearMaximumTime()
 
minimumDate QDate 最小Date
QDate minimumDate() const
void setMinimumDate(const QDate &min)
void clearMinimumDate()
 
minimumDateTime QDateTime 最小DateTime
QDateTime minimumDateTime() const
void setMinimumDateTime(const QDateTime &dt)
void clearMinimumDateTime()
 
minimumTime QTime 最小Time
QTime minimumTime() const
void setMinimumTime(const QTime &min)
void clearMinimumTime()
 
sectionCount int 一共几个Section sectionCount()  
time QTime 当前Time

time()

setTime(const QTime &time)

timeChanged(const QTime &time)
timeSpec Qt::TimeSpec 当前TimeSpec

timeSpec()

setTimeSpec(Qt::TimeSpec spec)

 

6、实例方法

7、信号

dateChanged(QDate date)  
dateTimeChanged(QDateTime datetime)  
timeChanged(QTime time)  

8、槽

setDate(QDate date)  
setDateTime(QDateTime dateTime)  
setTime(QTime time)  

Qt:QDateTimeEdit的更多相关文章

  1. Qt:禁止qDebug的输出

    Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT

  2. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

  3. Qt:QJsonObject

    0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...

  4. Qt:QJsonValue

    0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...

  5. Qt:QJsonArray

    0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...

  6. Qt:QUrl构造时的qrc前缀

    参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...

  7. Qt:QDateTime、QDate、QTime与QDateTimeEdit

    时间日期是经常遇到的数据类型,Qt中的时间日期类如下: QTime:时间类型,只表示时间,如15:23:13: QDate:日期类型,只表示日期,如2017-4-5: QDateTime:日期时间类型 ...

  8. PyQt(Python+Qt)学习随笔:QDateTimeEdit日期时间编辑部件

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 Designer输入部件中,Date/Time E ...

  9. Qt:正则表达式语法:

         正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式;        Qt 提供了一个Q ...

随机推荐

  1. Android Native -- Message/Handler/Looper机制(应用篇)

    ⌈Android Native消息队列处理系列文章⌋ Android Native -- Message/Handler/Looper机制(原理篇) Android Native -- Message ...

  2. ubuntu输入正确密码重新跳到登录界面

     原因一:/etc/profile或者/etc/enviroment  配置错误 (很多开发人员在配置完java环境之后容易出现这种情况) 解决办法(已验证): 1,开机后在登录界面按下shift+c ...

  3. 基于Centos7.X的CS:GO社区服搭建

    基于Centos7.X的CS:GO私人服务器搭建 由于比完了赛,在学校太过无聊,便想搭建一个CSGO社区服务器,方便舍友同学进来游玩,顺便帮助一些有想法的人,让他们少走一点弯路 一.创建新用户,并下载 ...

  4. deque概述

    1.简介 双端队列deque,与vector的最大差异在于: 一.deque运行常数时间对头端或尾端进行元素的插入和删除操作. 二.deque没有所谓的容器概念,因为它是动态地以分段连续空间组合而成随 ...

  5. MyBatis加强(1)~myBatis对象关系映射(多对一关系、一对多关系)、延迟/懒加载

    一.myBatis对象关系映射(多对一关系.一对多关系) 1.多对一关系: ---例子:多个员工同属于一个部门. (1)myBatis发送 额外SQL: ■ 案例:员工表通过 dept_id 关联 部 ...

  6. ApacheCN 大数据译文集 20211206 更新

    PySpark 大数据分析实用指南 零.前言 一.安装 Pyspark 并设置您的开发环境 二.使用 RDD 将您的大数据带入 Spark 环境 三.Spark 笔记本的大数据清理和整理 四.将数据汇 ...

  7. 如何把一个数组中的对象的key值相等的对象合成一个对象

    比如这样一个数组:[{category:"中国梦",value:"10000"},{category:"有国才有家",value:" ...

  8. Nacos极简教程

    简介 Nacos是服务发现与注册,服务配置中心. Nacos 具有如下特性: 服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送 ...

  9. C程序:年转化天

    突然想算算自己到底活了多少天了,e,就是纯属为了好玩,毕竟咱作为一名C初学者还是要多练练的- 为了好玩,加了个密码登陆的,密码是521,还有就是不太懂时间获取... 具体闰年的判断方法: 代码如下: ...

  10. Base64补充

    1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件. 65字 ...