QDateTimeEdit 類提供用於編輯日期和時間的 Widget。 更多...
| 頭: | #include <QDateTimeEdit> |
| qmake: | QT += widgets |
| 繼承: | QAbstractSpinBox |
| 繼承者: |
| enum | Section { NoSection, AmPmSection, MSecSection, SecondSection, MinuteSection, …, YearSection } |
| flags | Sections |
|
|
| 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 |
| 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 (const QDate & min , const QDate & max ) |
| void | setDateTimeRange (const QDateTime & min , const QDateTime & max ) |
| void | setDisplayFormat (const QString & format ) |
| void | setMaximumDate (const QDate & max ) |
| void | setMaximumDateTime (const QDateTime & dt ) |
| void | setMaximumTime (const QTime & max ) |
| void | setMinimumDate (const QDate & min ) |
| void | setMinimumDateTime (const QDateTime & dt ) |
| void | setMinimumTime (const QTime & min ) |
| void | setSelectedSection (QDateTimeEdit::Section section ) |
| void | setTimeRange (const QTime & min , const 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 (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 |
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 (或) 組閤。
此特性保持當前日曆彈齣顯示模式。
日曆彈齣將展示,當點擊箭頭按鈕時。此特性纔有效,若存在有效日期顯示格式。
該特性在 Qt 4.2 引入。
訪問函數:
| 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.
該特性在 Qt 4.3 引入。
訪問函數:
| int | currentSectionIndex () const |
| void | setCurrentSectionIndex (int index ) |
另請參閱 setCurrentSection () 和 currentSection ().
此特性保持 QDate 的設置在 Widget。
默認情況下,此特性包含指嚮 2000 年 1 月 1 日的日期。
訪問函數:
| QDate | date () const |
| void | setDate (const QDate & date ) |
通知程序信號:
| void | dateChanged (const QDate & date ) |
此特性保持 QDateTime 的設置在 QDateTimeEdit .
When setting this property the timespec of the QDateTimeEdit remains the same and the timespec of the new QDateTime 被忽略。
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 ().
此特性保持日期時間編輯的目前顯示字段。
返迴此格式顯示區間的位集。
訪問函數:
| QDateTimeEdit::Sections | displayedSections () const |
另請參閱 setDisplayFormat () 和 displayFormat ().
此特性保持日期時間編輯的最大日期。
改變此特性會更新日期對於 maximumDateTime 特性而保留 maximumTime 特性。當設置此特性時, minimumDate 被調節,若有必要,確保範圍仍然有效。當這發生時, minimumTime 特性也會被調節,若它大於 maximumTime 特性。否則,改變此特性會保留 minimumDateTime 特性。
隻可以將此特性設為有效 QDate 日期描述對象,當當前 maximumTime 特性會創建有效 QDateTime 對象。setMaximumDate() 接受的最晚日期是公元 9999 年末。這是此特性的默認值。可以恢復此默認值采用 clearMaximumDateTime ().
訪問函數:
| QDate | maximumDate () const |
| void | setMaximumDate (const QDate & max ) |
| void | clearMaximumDate () |
另請參閱 minimumDate , maximumTime , maximumDateTime , setDateRange (), QDate::isValid (),和 鍵盤追蹤 .
此特性保持日期時間編輯的最大日期時間。
改變此特性會隱式更新 maximumDate and maximumTime 特性分彆到此特性的日期和時間部分。當設置此特性時, minimumDateTime 被調節,若有必要,確保範圍仍然有效。否則,改變此特性會保留 minimumDateTime 特性。
隻可以將此特性設為有效 QDateTime 值。setMaximumDateTime() 接受的最晚日期時間是公元 9999 年末。這是此特性的默認值。可以恢復此默認值采用 clearMaximumDateTime()。
該特性在 Qt 4.4 引入。
訪問函數:
| 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 (const 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 (const QDate & min ) |
| void | clearMinimumDate () |
另請參閱 maximumDate , minimumTime , minimumDateTime , setDateRange (), QDate::isValid (),和 鍵盤追蹤 .
此特性保持日期時間編輯的最小日期時間。
改變此特性會隱式更新 minimumDate and minimumTime 特性分彆到此特性的日期和時間部分。當設置此特性時, maximumDateTime 被調節,若有必要,以確保範圍仍然有效。否則,改變此特性將保留 minimumDateTime 特性。
隻可以將此特性設為有效 QDateTime 值。setMinimumDateTime() 接受的最早日期時間是從公元 100 年起。特性默認從公元 1752 年 9 月 14 日起。采用 clearMinimumDateTime() 可以還原此默認。
該特性在 Qt 4.4 引入。
訪問函數:
| 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 (const QTime & min ) |
| void | clearMinimumTime () |
另請參閱 maximumTime , minimumDate , minimumDateTime , setTimeRange (), QTime::isValid (),和 鍵盤追蹤 .
此特性保持顯示的區間數。若格式為 yyyy/yy/yyyy,sectionCount 返迴 3
該特性在 Qt 4.3 引入。
訪問函數:
| int | sectionCount () const |
此特性保持 QTime 的設置在 Widget。
默認情況下,此特性包含時間 00:00:00 和 0 毫秒。
訪問函數:
| QTime | time () const |
| void | setTime (const QTime & time ) |
通知程序信號:
| void | timeChanged (const QTime & time ) |
此特性保持用於日期時間編輯的當前時間規範。
該特性在 Qt 4.4 引入。
訪問函數:
| Qt::TimeSpec | timeSpec () const |
| void | setTimeSpec (Qt::TimeSpec spec ) |
構造空的日期時間編輯器采用 parent 。值被設為 time .
構造空的日期時間編輯器采用 parent 。值被設為 date .
構造空的日期時間編輯器采用 parent 。值被設為 datetime .
構造空的日期時間編輯器采用 parent .
[signal]
void
QDateTimeEdit::
dateChanged
(const
QDate
&
date
)
此信號被發射,每當日期改變時。新日期被傳入 date .
注意: 通知程序信號對於特性 date .
另請參閱 鍵盤追蹤 .
[signal]
void
QDateTimeEdit::
dateTimeChanged
(const
QDateTime
&
datetime
)
此信號被發射,每當日期 (或時間) 改變時。新日期和時間被傳入 datetime .
注意: 通知程序信號對於特性 dateTime .
另請參閱 鍵盤追蹤 .
[signal]
void
QDateTimeEdit::
timeChanged
(const
QTime
&
time
)
此信號發射,每當時間改變時。新時間被傳入 time .
注意: 通知程序信號對於特性 time .
另請參閱 鍵盤追蹤 .
[虛擬]
QDateTimeEdit::
~QDateTimeEdit
()
析構函數。
返迴用於編輯器的日曆 Widget 若 calendarPopup 被設為 true 且 (sections() & DateSections_Mask ) != 0.
此函數創建並返迴日曆 Widget 若沒有設置。
該函數在 Qt 4.4 引入。
另請參閱 setCalendarWidget ().
[override virtual]
void
QDateTimeEdit::
clear
()
重實現: QAbstractSpinBox::clear ().
返迴日期時間編輯的日期。
注意: getter 函數對於特性 date。
另請參閱 setDate ().
[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).
[protected]
void
QDateTimeEdit::
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 ,
該函數在 Qt 4.3 引入。
返迴文本從給定 section .
另請參閱 currentSection ().
設置給定 calendarWidget 作為用於日曆彈齣的 Widget。編輯器不會自動擁有日曆 Widget 的所有權。
注意: calendarPopup 必須被設為 true 在設置日曆 Widget 前。
該函數在 Qt 4.4 引入。
另請參閱 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 .
若範圍更窄,那麼它跨越時間間隔結束,例如,跨越月末的周,用戶隻可以將日期時間編輯成範圍的後麵部分,若鍵盤追蹤被禁用。
該函數在 Qt 4.4 引入。
另請參閱 minimumDateTime , maximumDateTime , setDateRange (), setTimeRange (), QDateTime::isValid (),和 鍵盤追蹤 .
選擇 section 。若 section 未存在於目前顯示部分中,此函數什麼都不做。若 section is NoSection ,此函數將取消選擇編輯器中的所有文本。否則,此函數將光標和當前區間移動到選中區間。
該函數在 Qt 4.2 引入。
另請參閱 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 ().
[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).