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天,之后,我们设置了年月日的顺序。
QDateTimeEdit允许使用QCalendarWidget来选择日期,通过设置calendarPopup属性完成。除此之外,我们可以用setCalendarWidget()来定制一个特殊的弹出式日历。已经存在的日历Widget可以用calendarWidget()提取。
当启用了keyboard tracking(默认情况下是启用的),每次敲击键盘修改某个字段值时都会发送一个信号,标识了数值更改。
当限制了日期的范围而通过键盘编辑某个字段会导致超出该范围,那么这次编辑就会被阻止。
当禁用了keyboard tracking,那么只有当键盘焦点离开该文本字段字段后才会显示修改。这允许用户通过编辑一个无效的Date-Time来实现一个有效的Date-Time。
Header:
#include
qmake:
QT += widgets
Inherits:
Inherited By:
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
其中存储了一些Section值的OR组合。
一个Section就是实际显示时的一个字段,比如显示格式为'yyyy/yy/yyyy',那么Section数目就为3
flags
bool
是否允许以日历形式选择日期
calendarPopup()
setCalendarPopup(bool enable)
Section
当前Section。
Section是指当光标位于的字段。
currentSection()
setCurrentSection(QDateTimeEdit::Section section)
int
当前Section的位置索引。
比如当前Section在第二个字段处,那么该值就是1
currentSectionIndex()
QDate
当前的QDate
date()
setDate(const QDate &date)
dateChanged(const QDate &date)
QDateTime
当前的QDateTime
dateTime()
setDateTime(const QDateTime &dateTime)
dateTimeChanged(const QDateTime &datetime)
QString
展示出来的字符串格式。
格式见
QDateTime::toString() 和QDateTime::fromString()
displayFormat()
setDisplayFormat(const QString &format)
Sections
当前展示的Section
displayedSections()
QDate
最大Date
maximumDate()
setMaximumDate(const QDate &max)
clearMaximumDate()
QDateTime
最大DateTime
QDateTime
maximumDateTime() const
void
setMaximumDateTime(const QDateTime &dt)
void
clearMaximumDateTime()
QTime
最大Time
QTime
maximumTime() const
void
setMaximumTime(const QTime &max)
void
clearMaximumTime()
QDate
最小Date
QDate
minimumDate() const
void
setMinimumDate(const QDate &min)
void
clearMinimumDate()
QDateTime
最小DateTime
QDateTime
minimumDateTime() const
void
setMinimumDateTime(const QDateTime &dt)
void
clearMinimumDateTime()
QTime
最小Time
QTime
minimumTime() const
void
setMinimumTime(const QTime &min)
void
clearMinimumTime()
int
一共几个Section
sectionCount()
QTime
当前Time
time()
setTime(const QTime &time)
timeChanged(const QTime &time)
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)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章