QDateTimeEdit Class
QDateTimeEdit类提供了一个用于编辑日期和时间的小部件。
Header | #include < QDateTimeEdit> |
---|---|
qmake | QT += widgets |
Inherits | QAbstractSpinBox |
Inherited By | QDateEdit and QTimeEdit |
详细说明
QDateTimeEdit允许用户通过使用键盘或箭头键来增加和减少日期和时间值来编辑日期。箭头按键可用于在QDateTime编辑框中从一部分移动到另一部分。日期和时间按照设置的格式显示;请参见setDisplayFormat() 。
QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate());
dateEdit->setMinimumDate(QDate::currentDate().addDays(-365));
dateEdit->setMaximumDate(QDate::currentDate().addDays(365));
dateEdit->setDisplayFormat("yyyy.MM.dd");
在这里,我们创建了一个新的QDateTimeEdit对象,它用今天的日期初始化,并将有效日期范围限制为今天加上或减去365天。我们已把顺序 定为月、日、年。
QDateTimeEdit的有效值范围由属性minimumDateTime、maximumDateTime及其各自的日期和时间组件控制。默认情况下,从100 CE开始到9999 CE结束的任何日期时间都有效。
使用弹出式日历小部件
QDateTimeEdit可以配置为允许使用QCalendarWidget来选择日期。这是通过设置calendarPopup属性启用的。此外,还可以通过调用setCalendarWidget() 函数提供一个自定义日历小部件,用作日历弹出窗口。可以使用calendarWidget() 检索现有的日历小部件。
公共类型
enum Section
flags Sections
Constant | Value |
---|---|
NoSection | 0x0000 |
AmPmSection | 0x0001 |
MSecSection | 0x0002 |
SecondSection | 0x0004 |
MinuteSection | 0x0008 |
HourSection | 0x0010 |
DaySection | 0x0100 |
MonthSection | 0x0200 |
YearSection | 0x0400 |
属性
-
calendarPopup: bool 当前日历弹出显示模式
单击箭头按钮将显示日历弹出窗口。只有存在有效的日期显示格式时,此属性才有效。Access functions:
- bool calendarPopup() const
- void setCalendarPopup(bool enable)
-
currentSection: Section spinbox的当前部分
Access functions:
- QDateTimeEdit::Section currentSection() const
- void setCurrentSection(QDateTimeEdit::Section section)
-
currentSectionIndex: int spinbox的当前节索引
如果格式为“yyyy/MM/dd”,则显示文本为“2001/05/21”,光标位置为5,currentSectionIndex返回1。如果光标位置为3,则currentSectionIndex为0,依此类推。Access functions:
- int currentSectionIndex() const
- void setCurrentSectionIndex(int index)
-
date: QDate 小部件中设置的QDate
默认情况下,此属性包含引用2000年1月1日的日期。Access functions:
- QDate date() const
- void setDate(const QDate &date)
Notifier signal:
- void dateChanged(const QDate &date)
-
dateTime: QDateTime QDateTimeEdit中设置的QDateTime
设置此属性时,QDateTimeEdit的timespec保持不变,新QDateTime的timespec将被忽略。默认情况下,此属性设置为2000 CE的开头。它只能设置为有效的QDateTime值。如果任何操作导致此属性的日期时间值无效,则会将其重置为minimumDateTime属性的值。
如果QDateTimeEdit没有日期字段,则设置此属性会将小部件的日期范围设置为从该属性的新值的日期开始和结束。
Access functions:
- QDateTime dateTime() const
- void setDateTime(const QDateTime &dateTime)
Notifier signal:
- void dateTimeChanged(const QDateTime &datetime)
-
displayFormat: QString 用于显示日期时间编辑的时间/日期的格式
此格式在QDateTime::toString() 和QDateTime::fromString() 中描述
格式字符串示例(假设日期为1969年7月2日):Format Result dd.MM.yyyy 02.07.1969 MMM d yy Jul 2 69 MMMM d yy July 2 69 请注意,如果指定两位数的年份,它将被解释为初始化日期时间编辑的世纪。默认的世纪是21世纪(2000-2099)。
如果指定的格式无效,则不会设置格式。
Access functions:
- QString displayFormat() const
- void setDisplayFormat(const QString &format)
-
displayedSections: const Sections 日期时间编辑的当前显示字段
返回此格式的显示节的位集。Access functions:
- QDateTimeEdit::Sections displayedSections() const
-
maximumDate: QDate 日期时间编辑的最大日期
此属性只能设置为描述当前maximumTime属性生成有效QDateTime对象的日期的有效QDate对象。setMaximumDate() 接受的最新日期是9999 CE的结束日期。这是此属性的默认值。
可以使用clearMaximumDateTime() 还原此默认值。
Access functions:
- QDate maximumDate() const
- void setMaximumDate(const QDate &max)
- void clearMaximumDate()
-
maximumDateTime: QDateTime 日期时间编辑的最大日期时间
Access functions:
- QDateTime maximumDateTime() const
- void setMaximumDateTime(const QDateTime &dt)
- void clearMaximumDateTime()
-
maximumTime: QTime 日期时间编辑的最大时间
此属性可以设置为任何有效的QTime值。默认情况下,此属性包含23:59:59和999毫秒的时间。可以使用clearMaximumTime() 还原此默认值。Access functions:
- QTime maximumTime() const
- void setMaximumTime(const QTime &max)
- void clearMaximumTime()
-
minimumDate: QDate 日期时间编辑的最小日期
此属性只能设置为描述当前minimumTime属性生成有效QDateTime对象的日期的有效QDate对象。setMinimumDate() 接受的最早日期是100 CE的开始日期。此属性的默认值为1752年9月14日。可以使用clearMinimumDateTime() 还原此默认值。
Access functions:- QDate minimumDate() const
- void setMinimumDate(const QDate &min)
- void clearMinimumDate()
-
minimumDateTime: QDateTime 日期时间编辑的最小日期时间
此属性只能设置为有效的QDateTime值。setMinimumDateTime() 接受的最早日期时间是100 CE的开始。该地产的违约日期为1752年9月14日。可以使用clearMinimumDateTime() 还原此默认值。
Access functions:- QDateTime minimumDateTime() const
- void setMinimumDateTime(const QDateTime &dt)
- void clearMinimumDateTime()
-
minimumTime: QTime 日期时间编辑的最小时间
此属性可以设置为任何有效的QTime值。默认情况下,此属性包含00:00:00和0毫秒的时间。可以使用clearMinimumTime() 还原此默认值。
Access functions:
- QTime minimumTime() const
- void setMinimumTime(const QTime &min)
- void clearMinimumTime()
-
sectionCount: const int 显示部分的数量
如果格式为’yyyy/yy/yyy’,sectionCount返回3
Access functions:
- int sectionCount() const
-
time: QTime 小部件中设置的QTime
默认情况下,此属性包含00:00:00和0毫秒的时间。
Access functions:- QTime time() const
- void setTime(const QTime &time)
Notifier signal:
- void timeChanged(const QTime &time)
-
timeSpec: Qt::TimeSpec 日期时间编辑使用的当前时间段
Access functions:
- Qt::TimeSpec timeSpec() const
- void setTimeSpec(Qt::TimeSpec spec)
enum Qt::TimeSpec
Constant Value Description LocalTime 0 区域设置相关时间(时区和夏令时)。 UTC 1 协调世界时,取代格林威治标准时间。 OffsetFromUTC 2 以秒为单位的与协调世界时的偏移量。 TimeZone 3 使用一组特定的夏令时规则的指定时区。
公共函数
构造析构
- QDateTimeEdit(const QTime &time, QWidget *parent = nullptr)
- QDateTimeEdit(const QDate &date, QWidget *parent = nullptr)
- QDateTimeEdit(const QDateTime &datetime, QWidget *parent = nullptr)
- QDateTimeEdit(QWidget *parent = nullptr)
- virtual ~QDateTimeEdit()
属性相关
- bool calendarPopup() const
- void setCalendarPopup(bool enable)
- QDateTimeEdit::Section currentSection() const
- void setCurrentSection(QDateTimeEdit::Section section)
- int currentSectionIndex() const
- void setCurrentSectionIndex(int index)
- QDate date() const
- QDateTime dateTime() const
- QString displayFormat() const
- void setDisplayFormat(const QString &format)
- QDateTimeEdit::Sections displayedSections() const
- QDate maximumDate() const
- void setMaximumDate(const QDate &max)
- void clearMaximumDate()
- QDateTime maximumDateTime() const
- void setMaximumDateTime(const QDateTime &dt)
- void clearMaximumDateTime()
- QTime maximumTime() const
- void setMaximumTime(const QTime &max)
- void clearMaximumTime()
- QDate minimumDate() const
- void setMinimumDate(const QDate &min)
- void clearMinimumDate()
- QDateTime minimumDateTime() const
- void setMinimumDateTime(const QDateTime &dt)
- void clearMinimumDateTime()
- QTime minimumTime() const
- void setMinimumTime(const QTime &min)
- void clearMinimumTime()
- int sectionCount() const
- QTime time() const
- Qt::TimeSpec timeSpec() const
- void setTimeSpec(Qt::TimeSpec spec)
特殊
-
QCalendarWidget * calendarWidget() const
如果calendarPopup设置为true并且(sections() & DateSections_Mask) != 0,则返回编辑器的日历小部件。如果没有设置日历小部件,则此函数创建并返回一个日历小部件。如果没有设置日历小部件,此函数将创建并返回一个日历小部件。
-
void setCalendarWidget(QCalendarWidget *calendarWidget)
将给定的calendarWidget设置为用于日历弹出窗口的小部件 。编辑器不会自动获得日历小部件的所有权。
注意:在设置日历小部件之前,必须将calendarPopup设置为true。 -
QDateTimeEdit::Section sectionAt(int index) const 返回索引处的部分
如果格式为’yyyy/MM/dd’,sectionAt(0)返回YearSection,sectionAt(1)返回MonthSection,sectionAt(2)返回YearSection,
-
QString sectionText(QDateTimeEdit::Section section) const 返回给定节中的文本
-
void setSelectedSection(QDateTimeEdit::Section section) 设置选定的部分
-
void setDateRange(const QDate &min, const QDate &max) 设置日期范围
-
void setDateTimeRange(const QDateTime &min, const QDateTime &max) 设置日期时间范围
-
void setTimeRange(const QTime &min, const QTime &max) 设置时间范围
重写的公共函数
- virtual void clear() override
- virtual bool event(QEvent *event) override
- virtual QSize sizeHint() const override
- virtual void stepBy(int steps) override
公共槽
- void setDate(const QDate &date)
- void setDateTime(const QDateTime &dateTime)
- void setTime(const QTime &time)
信号
- void dateChanged(const QDate &date)
- void dateTimeChanged(const QDateTime &datetime)
- void timeChanged(const QTime &time)
受保护的函数
- virtual QDateTime dateTimeFromText(const QString &text) const
- void initStyleOption(QStyleOptionSpinBox *option) const
- virtual QString textFromDateTime(const QDateTime &dateTime) const
重写的受保护的函数
- virtual void fixup(QString &input) const override
- virtual void focusInEvent(QFocusEvent *event) override
- virtual bool focusNextPrevChild(bool next) override
- virtual void keyPressEvent(QKeyEvent *event) override
- virtual void mousePressEvent(QMouseEvent *event) override
- virtual void paintEvent(QPaintEvent *event) override
- virtual QAbstractSpinBox::StepEnabled stepEnabled() const override
- virtual QValidator::State validate(QString &text, int &pos) const override
- virtual void wheelEvent(QWheelEvent *event) override