Qt:QDateTimeEdit
阅读原文时间:2023年07月09日阅读:2

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。

Header:

#include

qmake:

QT += widgets

Inherits:

QAbstractSpinBox

Inherited By:

QDateEdit and QTimeEdit

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

enum

Section { NoSection, AmPmSection, MSecSection,

SecondSection, MinuteSection, …, YearSection }

这里的Section是QFlags

的typedef(别名)。

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

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

flags

Sections

字段名

类型

说明

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)

 

dateChanged(QDate date)

 

dateTimeChanged(QDateTime datetime)

 

timeChanged(QTime time)

 

setDate(QDate date)

 

setDateTime(QDateTime dateTime)

 

setTime(QTime time)

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章