QDateTimeEdit 類提供用於編輯日期和時間的 Widget。 更多...
| 頭: | #include <QDateTimeEdit> |
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 繼承: | QAbstractSpinBox |
| 繼承者: | QDateEdit and QTimeEdit |
| enum | Section { NoSection, AmPmSection, MSecSection, SecondSection, MinuteSection, …, YearSection } |
| flags | Sections |
|
|
| QDateTimeEdit (QWidget * parent = nullptr) | |
| QDateTimeEdit (const QDateTime & datetime , QWidget * parent = nullptr) | |
| QDateTimeEdit (QDate date , QWidget * parent = nullptr) | |
| QDateTimeEdit (QTime time , QWidget * parent = nullptr) | |
| virtual | ~QDateTimeEdit () |
| bool | calendarPopup () const |
| QCalendarWidget * | calendarWidget () const |
| void | clearMaximumDate () |
| void | clearMaximumDateTime () |
| void | clearMaximumTime () |
| void | clearMinimumDate () |
| void | clearMinimumDateTime () |
| void | clearMinimumTime () |
| QDateTimeEdit::Section | currentSection () const |
| int | currentSectionIndex () const |
| QDate | date () const |
| QDateTime | dateTime () const |
| QString | displayFormat () const |
| QDateTimeEdit::Sections | displayedSections () const |
| QDate | maximumDate () const |
| QDateTime | maximumDateTime () const |
| QTime | maximumTime () const |
| QDate | minimumDate () const |
| QDateTime | minimumDateTime () const |
| QTime | minimumTime () const |
| QDateTimeEdit::Section | sectionAt (int index ) const |
| int | sectionCount () const |
| QString | sectionText (QDateTimeEdit::Section section ) const |
| void | setCalendarPopup (bool enable ) |
| void | setCalendarWidget (QCalendarWidget * calendarWidget ) |
| void | setCurrentSection (QDateTimeEdit::Section section ) |
| void | setCurrentSectionIndex (int index ) |
| void | setDateRange (QDate min , QDate max ) |
| void | setDateTimeRange (const QDateTime & min , const QDateTime & max ) |
| void | setDisplayFormat (const QString & format ) |
| void | setMaximumDate (QDate max ) |
| void | setMaximumDateTime (const QDateTime & dt ) |
| void | setMaximumTime (QTime max ) |
| void | setMinimumDate (QDate min ) |
| void | setMinimumDateTime (const QDateTime & dt ) |
| void | setMinimumTime (QTime min ) |
| void | setSelectedSection (QDateTimeEdit::Section section ) |
| void | setTimeRange (QTime min , QTime max ) |
| void | setTimeSpec (Qt::TimeSpec spec ) |
| QTime | time () const |
| Qt::TimeSpec | timeSpec () const |
| virtual void | clear () override |
| virtual bool | event (QEvent * event ) override |
| virtual QSize | sizeHint () const override |
| virtual void | stepBy (int steps ) override |
| void | setDate (QDate date ) |
| void | setDateTime (const QDateTime & dateTime ) |
| void | setTime (QTime time ) |
| void | dateChanged (QDate date ) |
| void | dateTimeChanged (const QDateTime & datetime ) |
| void | timeChanged (QTime time ) |
| virtual QDateTime | dateTimeFromText (const QString & text ) 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 | initStyleOption (QStyleOptionSpinBox * option ) const 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 |
QDateTimeEdit 允許用戶通過使用鍵盤 (或箭頭鍵) 遞增/遞減日期、時間以編輯日期。箭頭鍵可以用於從 QDateTimeEdit 框一區域移至另一區域。日期和時間按設置格式齣現;見 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 年起到公元 9999 年末的任何日期時間均有效。
可以配置 QDateTimeEdit 以允許 QCalendarWidget 用於選擇日期。這的啓用是通過設置 calendarPopup 特性。此外,可以提供自定義日曆 Widget 為用作日曆彈齣通過調用 setCalendarWidget () 函數。可以檢索現有日曆 Widget 采用 calendarWidget ().
當 鍵盤追蹤 被啓用 (默認),編輯字段時的每次擊鍵都會觸發用於值更改的信號。
當允許 range 比它橫跨的某個時間間隔結束更窄,鍵盤追蹤會阻止用戶編輯日期 (或時間) 以訪問間隔的後麵部分。例如,對於範圍從 29.04.2020 到 02.05.2020,且初始日期為 30.04.2020,用戶既無法改變月份 (5 月 30 日在範圍外),也無法改變天數 (4 月 2 日在範圍外)。
當鍵盤追蹤被禁用,改變纔發齣信號,當聚焦離開文本字段且編輯有修改內容後。這允許用戶憑藉無效日期時間的編輯,以到達有效日期時間。
另請參閱 QDateEdit , QTimeEdit , QDate ,和 QTime .
| 常量 | 值 |
|---|---|
QDateTimeEdit::NoSection
|
0x0000
|
QDateTimeEdit::AmPmSection
|
0x0001
|
QDateTimeEdit::MSecSection
|
0x0002
|
QDateTimeEdit::SecondSection
|
0x0004
|
QDateTimeEdit::MinuteSection
|
0x0008
|
QDateTimeEdit::HourSection
|
0x0010
|
QDateTimeEdit::DaySection
|
0x0100
|
QDateTimeEdit::MonthSection
|
0x0200
|
QDateTimeEdit::YearSection
|
0x0400
|
Sections 類型是 typedef 對於 QFlags <Section>。它存儲 Section 值的 OR (或) 組閤。
此特性保持當前日曆彈齣顯示模式。
日曆彈齣將展示,當點擊箭頭按鈕時。此特性纔有效,若存在有效日期顯示格式。
訪問函數:
| bool | calendarPopup () const |
| void | setCalendarPopup (bool enable ) |
另請參閱 setDisplayFormat ().
此特性保持自鏇框的當前區間。
訪問函數:
| QDateTimeEdit::Section | currentSection () const |
| void | setCurrentSection (QDateTimeEdit::Section section ) |
此特性保持自鏇框的當前區間索引。
If the format is 'yyyy/MM/dd', the displayText is '2001/05/21', and the cursorPosition is 5, currentSectionIndex returns 1. If the cursorPosition is 3, currentSectionIndex is 0, and so on.
訪問函數:
| int | currentSectionIndex () const |
| void | setCurrentSectionIndex (int index ) |
另請參閱 setCurrentSection () 和 currentSection ().
此特性保持 QDate 的設置在 Widget。
默認情況下,此特性包含指嚮 2000 年 1 月 1 日的日期。
訪問函數:
| QDate | date () const |
| void | setDate (QDate date ) |
通知程序信號:
| void | dateChanged (QDate date ) |
此特性保持 QDateTime 的設置在 QDateTimeEdit .
When setting this property, the new QDateTime is converted to the time system of the QDateTimeEdit , which thus remains unchanged.
By default, this property is set to the start of 2000 CE. It can only be set to a valid QDateTime value. If any operation causes this property to have an invalid date-time as value, it is reset to the value of the minimumDateTime 特性。
若 QDateTimeEdit has no date fields, setting this property sets the widget's date-range to start and end on the date of the new value of this property.
訪問函數:
| QDateTime | dateTime () const |
| void | setDateTime (const QDateTime & dateTime ) |
通知程序信號:
| void | dateTimeChanged (const QDateTime & datetime ) |
另請參閱 date , time , minimumDateTime ,和 maximumDateTime .
This property holds the format used to display the time/date of the date time edit.
此格式的描述在 QDateTime::toString () 和 QDateTime::fromString ()
Example format strings (assuming that the date is 2nd of July 1969):
| 格式 | 結果 |
|---|---|
| dd.MM.yyyy | 02.07.1969 |
| MMM d yy | Jul 2 69 |
| MMMM d yy | July 2 69 |
Note that if you specify a two digit year, it will be interpreted to be in the century in which the date time edit was initialized. The default century is the 21st (2000-2099).
若指定格式無效,格式將不設置。
訪問函數:
| QString | displayFormat () const |
| void | setDisplayFormat (const QString & format ) |
另請參閱 QDateTime::toString () 和 displayedSections ().
[read-only]
displayedSections
: const
Sections
此特性保持日期時間編輯的目前顯示字段。
返迴此格式顯示區間的位集。
訪問函數:
| QDateTimeEdit::Sections | displayedSections () const |
另請參閱 setDisplayFormat () 和 displayFormat ().
此特性保持日期時間編輯的最大日期。
改變此特性會更新日期對於 maximumDateTime 特性而保留 maximumTime 特性。當設置此特性時, minimumDate 被調節,若有必要,確保範圍仍然有效。當這發生時, minimumTime 特性也會被調節,若它大於 maximumTime 特性。否則,改變此特性會保留 minimumDateTime 特性。
隻可以將此特性設為有效 QDate 日期描述對象,當當前 maximumTime 特性會創建有效 QDateTime 對象。setMaximumDate() 接受的最晚日期是公元 9999 年末。這是此特性的默認值。可以恢復此默認值采用 clearMaximumDateTime ().
訪問函數:
| QDate | maximumDate () const |
| void | setMaximumDate (QDate max ) |
| void | clearMaximumDate () |
另請參閱 minimumDate , maximumTime , maximumDateTime , setDateRange (), QDate::isValid (),和 鍵盤追蹤 .
此特性保持日期時間編輯的最大日期時間。
改變此特性會隱式更新 maximumDate and maximumTime 特性分彆到此特性的日期和時間部分。當設置此特性時, minimumDateTime 被調節,若有必要,確保範圍仍然有效。否則,改變此特性會保留 minimumDateTime 特性。
隻可以將此特性設為有效 QDateTime 值。setMaximumDateTime() 接受的最晚日期時間是公元 9999 年末。這是此特性的默認值。可以恢復此默認值采用 clearMaximumDateTime()。
訪問函數:
| QDateTime | maximumDateTime () const |
| void | setMaximumDateTime (const QDateTime & dt ) |
| void | clearMaximumDateTime () |
另請參閱 minimumDateTime , maximumTime , maximumDate (), setDateTimeRange (), QDateTime::isValid (),和 鍵盤追蹤 .
此特性保持日期時間編輯的最大時間。
改變此特性會更新時間對於 maximumDateTime 特性而保留 minimumDate and maximumDate 特性。若這些日期特性重閤,當設置此特性時, minimumTime 特性被調節,若有必要,確保範圍仍然有效。否則,改變此特性會保留 minimumDateTime 特性。
可以將此特性設為任何有效 QTime 值。默認情況下,此特性包含 23:59:59 和 999 毫秒時間。可以恢復此默認值采用 clearMaximumTime()。
訪問函數:
| QTime | maximumTime () const |
| void | setMaximumTime (QTime max ) |
| void | clearMaximumTime () |
另請參閱 minimumTime , maximumDate , maximumDateTime , setTimeRange (), QTime::isValid (),和 鍵盤追蹤 .
此特性保持日期時間編輯的最小日期。
改變此特性會更新日期對於 minimumDateTime 特性而保留 minimumTime 特性。當設置此特性時, maximumDate 被調節,若有必要,確保範圍仍然有效。當這發生時, maximumTime 特性也會被調節,若它小於 minimumTime 特性。否則,改變此特性會保留 maximumDateTime 特性。
隻可以將此特性設為有效 QDate 日期描述對象,當當前 minimumTime 特性會創建有效 QDateTime 對象。setMinimumDate() 接受的最早日期是公元 100 年起。此特性的默認值為公元 1752 年 9 月 14 日。可以恢復此默認值采用 clearMinimumDateTime ().
訪問函數:
| QDate | minimumDate () const |
| void | setMinimumDate (QDate min ) |
| void | clearMinimumDate () |
另請參閱 maximumDate , minimumTime , minimumDateTime , setDateRange (), QDate::isValid (),和 鍵盤追蹤 .
此特性保持日期時間編輯的最小日期時間。
改變此特性會隱式更新 minimumDate and minimumTime 特性分彆到此特性的日期和時間部分。當設置此特性時, maximumDateTime 被調節,若有必要,確保範圍仍然有效。否則,改變此特性會保留 maximumDateTime 特性。
隻可以將此特性設為有效 QDateTime 值。setMinimumDateTime() 接受的最早日期時間是從公元 100 年起。特性默認從公元 1752 年 9 月 14 日起。采用 clearMinimumDateTime() 可以還原此默認。
訪問函數:
| QDateTime | minimumDateTime () const |
| void | setMinimumDateTime (const QDateTime & dt ) |
| void | clearMinimumDateTime () |
另請參閱 maximumDateTime , minimumTime , minimumDate , setDateTimeRange (), QDateTime::isValid (),和 鍵盤追蹤 .
此特性保持日期時間編輯的最小時間。
改變此特性會更新時間對於 minimumDateTime 特性而保留 minimumDate and maximumDate 特性。若這些日期特性重閤,當設置此特性時, maximumTime 特性被調節,若有必要,確保範圍仍然有效。否則,改變此特性會保留 maximumDateTime 特性。
可以將此特性設為任何有效 QTime 值。默認情況下,此特性包含 00:00:00 和 0 毫秒時間。可以恢復此默認值采用 clearMinimumTime()。
訪問函數:
| QTime | minimumTime () const |
| void | setMinimumTime (QTime min ) |
| void | clearMinimumTime () |
另請參閱 maximumTime , minimumDate , minimumDateTime , setTimeRange (), QTime::isValid (),和 鍵盤追蹤 .
[read-only]
sectionCount
: const
int
此特性保持顯示的區間數。若格式為 yyyy/yy/yyyy,sectionCount 返迴 3
訪問函數:
| int | sectionCount () const |
此特性保持 QTime 的設置在 Widget。
默認情況下,此特性包含時間 00:00:00 和 0 毫秒。
訪問函數:
| QTime | time () const |
| void | setTime (QTime time ) |
通知程序信號:
| void | timeChanged (QTime time ) |
此特性保持用於日期時間編輯的當前時間規範。
訪問函數:
| Qt::TimeSpec | timeSpec () const |
| void | setTimeSpec (Qt::TimeSpec spec ) |
[explicit]
QDateTimeEdit::
QDateTimeEdit
(
QWidget
*
parent
= nullptr)
構造空的日期時間編輯器采用 parent .
[explicit]
QDateTimeEdit::
QDateTimeEdit
(const
QDateTime
&
datetime
,
QWidget
*
parent
= nullptr)
構造空的日期時間編輯器采用 parent 。值被設為 datetime .
[explicit]
QDateTimeEdit::
QDateTimeEdit
(
QDate
date
,
QWidget
*
parent
= nullptr)
構造空的日期時間編輯器采用 parent 。值被設為 date .
[explicit]
QDateTimeEdit::
QDateTimeEdit
(
QTime
time
,
QWidget
*
parent
= nullptr)
構造空的日期時間編輯器采用 parent 。值被設為 time .
[虛擬]
QDateTimeEdit::
~QDateTimeEdit
()
析構函數。
返迴用於編輯器的日曆 Widget 若 calendarPopup 被設為 true 且 (sections() & DateSections_Mask ) != 0.
此函數創建並返迴日曆 Widget 若沒有設置。
另請參閱 setCalendarWidget ().
[override virtual]
void
QDateTimeEdit::
clear
()
重實現: QAbstractSpinBox::clear ().
返迴日期時間編輯的日期。
注意: getter 函數對於特性 date。
另請參閱 setDate ().
[signal]
void
QDateTimeEdit::
dateChanged
(
QDate
date
)
此信號被發射,每當日期改變時。新日期被傳入 date .
注意: 通知程序信號對於特性 date .
另請參閱 鍵盤追蹤 .
[signal]
void
QDateTimeEdit::
dateTimeChanged
(const
QDateTime
&
datetime
)
此信號被發射,每當日期 (或時間) 改變時。新日期和時間被傳入 datetime .
注意: 通知程序信號對於特性 dateTime .
另請參閱 鍵盤追蹤 .
[virtual protected]
QDateTime
QDateTimeEdit::
dateTimeFromText
(const
QString
&
text
) const
返迴適當日期時間為給定 text .
此虛函數可以用於日期時間編輯,每當它需要將用戶鍵入文本解釋為值時。
另請參閱 textFromDateTime () 和 validate ().
[override virtual]
bool
QDateTimeEdit::
event
(
QEvent
*
event
)
重實現: QAbstractSpinBox::event (QEvent *event).
[override virtual protected]
void
QDateTimeEdit::
fixup
(
QString
&
input
) const
重實現: QAbstractSpinBox::fixup(QString &input) const .
[override virtual protected]
void
QDateTimeEdit::
focusInEvent
(
QFocusEvent
*
event
)
重實現: QAbstractSpinBox::focusInEvent (QFocusEvent *event).
[override virtual protected]
bool
QDateTimeEdit::
focusNextPrevChild
(
bool
next
)
重實現: QWidget::focusNextPrevChild (bool next).
[override virtual protected]
void
QDateTimeEdit::
initStyleOption
(
QStyleOptionSpinBox
*
option
) const
重實現: QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const .
初始化 option 采用來自此 QDataTimeEdit 的值。此方法對於子類很有用,當它們需要 QStyleOptionSpinBox ,但不希望自己填充所有信息。
另請參閱 QStyleOption::initFrom ().
[override virtual protected]
void
QDateTimeEdit::
keyPressEvent
(
QKeyEvent
*
event
)
重實現: QAbstractSpinBox::keyPressEvent (QKeyEvent *event).
[override virtual protected]
void
QDateTimeEdit::
mousePressEvent
(
QMouseEvent
*
event
)
重實現: QAbstractSpinBox::mousePressEvent (QMouseEvent *event).
[override virtual protected]
void
QDateTimeEdit::
paintEvent
(
QPaintEvent
*
event
)
重實現: QAbstractSpinBox::paintEvent (QPaintEvent *event).
返迴區間按 index .
若格式為 yyyy/MM/dd,sectionAt(0) 返迴 YearSection ,sectionAt(1) 返迴 MonthSection ,和 sectionAt(2) 返迴 YearSection ,
返迴文本從給定 section .
另請參閱 currentSection ().
設置給定 calendarWidget 作為用於日曆彈齣的 Widget。編輯器不會自動擁有日曆 Widget 的所有權。
注意: calendarPopup 必須被設為 true 在設置日曆 Widget 前。
另請參閱 calendarWidget () 和 calendarPopup .
設置用於日期時間編輯的允許日期範圍。
此方便函數設置 minimumDate and maximumDate 特性。
setDateRange(min, max);
類似於:
setMinimumDate(min); setMaximumDate(max);
若 min or max 無效,此函數什麼都不做。此函數保留 minimumTime 特性。若 max 小於 min ,新 maximumDateTime 特性將是新 minimumDateTime 特性。若 max 等於 min 和 maximumTime 特性小於 minimumTime 特性, maximumTime 特性被設為 minimumTime 特性。否則,這保留 maximumTime 特性。
若範圍更窄,那麼它跨越時間間隔結束,例如,跨越月末的周,用戶隻可以將日期編輯成範圍的後麵部分,若鍵盤追蹤被禁用。
另請參閱 minimumDate , maximumDate , setDateTimeRange (), QDate::isValid (),和 鍵盤追蹤 .
設置用於日期時間編輯的允許日期時間範圍。
此方便函數設置 minimumDateTime and maximumDateTime 特性。
setDateTimeRange(min, max);
類似於:
setMinimumDateTime(min); setMaximumDateTime(max);
若 min or max 無效,此函數什麼都不做。若 max 小於 min , min 也用作 max .
若範圍更窄,那麼它跨越時間間隔結束,例如,跨越月末的周,用戶隻可以將日期時間編輯成範圍的後麵部分,若鍵盤追蹤被禁用。
另請參閱 minimumDateTime , maximumDateTime , setDateRange (), setTimeRange (), QDateTime::isValid (),和 鍵盤追蹤 .
選擇 section 。若 section 未存在於目前顯示部分中,此函數什麼都不做。若 section is NoSection ,此函數將取消選擇編輯器中的所有文本。否則,此函數將光標和當前區間移動到選中區間。
另請參閱 currentSection ().
設置用於日期時間編輯的允許時間範圍。
此方便函數設置 minimumTime and maximumTime 特性。
注意,這些分彆僅約束日期時間編輯的值, minimumDate and maximumDate 。當這些日期特性不重閤時,時間後於 max 是允許的當日期先於 maximumDate 且時間先於 min 是允許的當日期後於 minimumDate .
setTimeRange(min, max);
類似於:
setMinimumTime(min); setMaximumTime(max);
若 min or max 無效,此函數什麼都不做。此函數保留 minimumDate and maximumDate 特性。若這些特性重閤且 max 小於 min , min 用作 max .
若範圍更窄,那麼它跨越時間間隔結束,例如,從 10 點到 1 點的 10 小時時間間隔,用戶隻可以按該範圍的後麵部分將時間編輯成 1,若鍵盤追蹤被禁用。
另請參閱 minimumTime , maximumTime , setDateTimeRange (), QTime::isValid (),和 鍵盤追蹤 .
[override virtual]
QSize
QDateTimeEdit::
sizeHint
() const
重實現: QAbstractSpinBox::sizeHint() const .
[override virtual]
void
QDateTimeEdit::
stepBy
(
int
steps
)
重實現: QAbstractSpinBox::stepBy (int steps).
[override virtual protected]
QAbstractSpinBox::StepEnabled
QDateTimeEdit::
stepEnabled
() const
重實現: QAbstractSpinBox::stepEnabled() const .
[virtual protected]
QString
QDateTimeEdit::
textFromDateTime
(const
QDateTime
&
dateTime
) const
此虛函數用於日期時間編輯,每當它需要顯示 dateTime .
若重實現這,還可能需要重實現 validate ().
另請參閱 dateTimeFromText () 和 validate ().
返迴日期時間編輯的時間。
注意: getter 函數對於特性 time。
另請參閱 setTime ().
[signal]
void
QDateTimeEdit::
timeChanged
(
QTime
time
)
此信號發射,每當時間改變時。新時間被傳入 time .
注意: 通知程序信號對於特性 time .
另請參閱 鍵盤追蹤 .
[override virtual protected]
QValidator::State
QDateTimeEdit::
validate
(
QString
&
text
,
int
&
pos
) const
重實現: QAbstractSpinBox::validate(QString &input, int &pos) const .
[override virtual protected]
void
QDateTimeEdit::
wheelEvent
(
QWheelEvent
*
event
)
重實現: QAbstractSpinBox::wheelEvent (QWheelEvent *event).