Qt:QDateTimeEdit
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: |
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 |
展示出来的字符串格式。 格式见 |
displayFormat() setDisplayFormat(const QString &format) |
|||||||
displayedSections | Sections | 当前展示的Section | displayedSections() | |||||||
maximumDate | QDate | 最大Date |
maximumDate() setMaximumDate(const QDate &max) clearMaximumDate()
|
|||||||
maximumDateTime | QDateTime | 最大DateTime |
|
|||||||
maximumTime | QTime | 最大Time |
|
|||||||
minimumDate | QDate | 最小Date |
|
|||||||
minimumDateTime | QDateTime | 最小DateTime |
|
|||||||
minimumTime | QTime | 最小Time |
|
|||||||
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) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性