class QDateTimeEdit#

QDateTimeEdit 类提供了一个用于编辑日期和时间的控件。更多信息

Inheritance diagram of PySide6.QtWidgets.QDateTimeEdit

继承自:

 

属性#

方法#

虚方法#

#

信号#

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建票据的方式告知我们。

详细说明#

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

../../_images/windows-datetimeedit.png

QDateTimeEdit 允许用户使用键盘或箭头键来编辑日期和时间,通过箭头键可以在 QDateTimeEdit 框内导航。日期和时间将按照设置的格式显示;请参阅 setDisplayFormat()

dateEdit = QDateTimeEdit(QDate.currentDate())
dateEdit.setMinimumDate(QDate.currentDate().addDays(-365))
dateEdit.setMaximumDate(QDate.currentDate().addDays(365))
dateEdit.setDisplayFormat("yyyy.MM.dd")

我们创建了一个新的 QDateTimeEdit 对象,并使用今天的日期进行了初始化,将有效日期范围限制为今天加上或减去365天。我们设置了月份、日期、年的顺序。

QDateTimeEdit 的有效值范围受属性 minimumDateTimemaximumDateTime 和相应的日期和时间组件控制。默认情况下,从公元100年的开始到公元9999年的结束的任何日期和时间都是有效的。

使用弹出式日历小部件#

QDateTimeEdit 可以配置为允许使用 QCalendarWidget 选择日期。这是通过设置 calendarPopup 属性来启用的。此外,您可以通过调用 setCalendarWidget() 函数为日历弹出提供自定义日历小部件。可以使用 calendarWidget() 还原现有的日历小部件。

键盘跟踪#

当启用(默认)keyboard tracking时,在编辑字段时每个按键都会触发值变化信号。

当允许的range窄于跨越的时间间隔时,键盘跟踪会阻止用户编辑日期或时间以访问间隔的后续部分。例如,对于从29.04.2020到02.05.2020的日期范围以及初始日期30.04.2020,用户不能更改月份(5月30日不在范围内)或日期(4月2日不在范围内)。

当键盘跟踪被禁用时,只有当焦点在编辑后离开文本字段并更改了内容时,才会发出更改信号。这使用户可以通过无效的日期时间编辑到一个有效的日期时间。

另请参阅

QDateEdit QTimeEdit QDateQTime

class Section#

常量

描述

QDateTimeEdit.NoSection

QDateTimeEdit.AmPmSection

QDateTimeEdit.MSecSection

QDateTimeEdit.SecondSection

QDateTimeEdit.MinuteSection

QDateTimeEdit.HourSection

QDateTimeEdit.DaySection

QDateTimeEdit.MonthSection

QDateTimeEdit.YearSection

注意

当使用from__feature__import true_property时,可以直接使用属性,否则通过访问器函数。

property calendarPopupᅟ: bool#

此属性包含当前日历弹出显示模式。

点击箭头按钮将显示日历弹出。此属性仅在存在有效的日期显示格式时有效。

另请参阅

setDisplayFormat()

访问函数
property currentSectionᅟ: QDateTimeEdit.Section#

此属性包含当前编辑框的当前部分。

访问函数
property currentSectionIndexᅟ: int#

此属性包含当前编辑框的当前部分索引。

如果格式为‘yyyy/MM/dd’,则显示文本是‘2001/05/21’,并且光标位置为5,当前部分索引返回1。如果光标位置为3,则当前部分索引为0,依此类推。

访问函数
属性 dateᅟ: QDate#

此属性保存了在控件中设置的QDate。

默认情况下,此属性包含一个指向2000年1月1日的日期。

另请参阅

time dateTime

访问函数
属性 dateTimeᅟ: QDateTime#

此属性保存了在 QDateTimeEdit 中设置的 QDateTime。

设置此属性时,新的 QDateTime 将转换为 QDateTimeEdit 的时间系统,因此保持不变。

默认情况下,此属性设置为公元2000年开始。它只能设置为有效的 QDateTime 值。如果任何操作导致此属性的日期时间值无效,它将重置为 minimumDateTime 属性的值。

如果 QDateTimeEdit 没有日期字段,设置此属性将使控件日期范围为起始和结束在本属性的新的日期值。

访问函数
属性 displayFormatᅟ: str#

此属性保存用于显示日期时间编辑器的日期/时间的格式。

此格式在 QDateTime::toString() 和 QDateTime::fromString() 中描述。

示例格式字符串(假设日期为1969年7月2日)

格式

结果

dd.MM.yyyy

02.07.1969

MMM d yy

Jul 2 69

MMMM d yy

July 2 69

请注意,如果您指定了两位数的年份,它将被解释为在日期时间编辑初始化的世纪内。默认世纪是21世纪(2000-2099)。

如果指定了无效的格式,则格式不会被设置。

另请参阅

displayedSections()

访问函数
属性 displayedSectionsᅟ: QDateTimeEdit.Section的组合#

此属性持有日期时间编辑当前显示的字段。

返回此格式的显示部分的位集。

访问函数
属性 maximumDateᅟ: QDate#

此属性包含日期时间编辑的最大日期。

更改此属性会在保留maximumTime属性的情况下更新maximumDateTime属性的日期。如果需要,将调整minimumDate以保证范围有效。此时如果minimumTime属性大于maximumTime属性,它也会被调整。否则,此属性的更改会保留minimumDateTime属性。

此属性只能设置为有效的QDate对象,描述一个当前maximumTime属性可以创建有效的QDateTime对象的日期。setMaximumDate()可以接受的最晚日期是公元9999年的结束。这是此属性的默认值。可以通过clearMaximumDateTime()恢复此默认值。

访问函数
属性 maximumDateTime: QDateTime#

此属性保存日期时间编辑器的最大日期时间。

修改此属性会隐式地将 maximumDatemaximumTime 属性分别更新到此属性的日期和时间段。设置此属性时,如果需要,会调整 minimumDateTime,以确保范围保持有效。否则,修改此属性将保持 minimumDateTime 属性。

此属性只能设置为有效的 QDateTime 值。setMaximumDateTime() 能够接受的最新日期时间是公元 9999 年底。这是此属性的默认值。可以通过 clearMaximumDateTime() 恢复此默认值。

访问函数
属性 maximumTime: QTime#

此属性保存日期时间编辑器的最大时间。

修改此属性同时更新 maximumDateTime 属性的时间,同时保留 minimumDatemaximumDate 属性。如果这些日期属性相同,设置此属性时,如果需要,会调整 minimumTime 属性,以确保范围保持有效。否则,修改此属性将保持 minimumDateTime 属性。

此属性可以设置为任何有效的 QTime 值。默认情况下,此属性包含 23:59:59 和 999 毫秒的时间。可以通过 clearMaximumTime() 恢复此默认值。

访问函数
属性 minimumDate: QDate#

此属性保存日期时间编辑器中的最小日期。

修改此属性将更新 minimumDateTime 属性的日期,同时保留 minimumTime 属性。设置此属性时,如果需要,还会调整 maximumDate,以确保范围仍然有效。在这种情况下,如果 maximumTime 属性小于 minimumTime 属性,则也会调整 maximumTime 属性。否则,对此属性的更改将保留 maximumDateTime 属性。

此属性只能设置为有效 QDate 对象,描述一个 current minimumTime 属性可以生成有效的 QDateTime 对象的日期。setMinimumDate() 接受的最早日期是公元 100 年的开始。此属性的默认值是公元 1752 年 9 月 14 日。此默认值可以通过 clearMinimumDateTime() 恢复。

访问函数
属性 minimumDateTime: QDateTime#

此属性保存日期时间编辑器的最小日期时间。

更改此属性会隐式更新 minimumDateminimumTime 属性,分别对应此属性中的日期和时间部分。在设置此属性时,如果需要,会调整 maximumDateTime,以确保范围有效。否则,更改此属性将保留 maximumDateTime 属性。

此属性只能设置有效的 QDateTime 值。setMinimumDateTime() 接受的最早日期时间为公元100年的开始。属性的默认值是公元1752年9月14日的开始。可以通过 clearMinimumDateTime() 恢复此默认值。

访问函数
property minimumTimeᅟ: QTime#

此属性保存日期时间编辑器的最小时间。

更改此属性会更新 minimumDateTime 属性中的时间,同时保留 minimumDatemaximumDate 属性。如果这些日期属性重合,设置此属性时,如果需要,会调整 maximumTime 属性,以确保范围有效。否则,更改此属性将保留 maximumDateTime 属性。

此属性可以设置任何有效的 QTime 值。默认情况下,此属性包含 00:00:00 和 0 毫秒的时间。可以通过 clearMinimumTime() 恢复此默认值。

另请参阅

maximumTime minimumDate minimumDateTime setTimeRange() Keyboard Tracking

访问函数
属性 sectionCount: int#

该属性保存显示的部分数。如果格式为‘yyyy/yy/yyyy’,则sectionCount返回3。

访问函数
属性 time: QTime#

该属性保存小部件中设置的QTime。

默认情况下,此属性包含的时间为00:00:00和0毫秒。

另请参阅

date dateTime

访问函数
属性 timeSpec: Qt.TimeSpec#

使用 timeZone 代替。

该属性保存日期时间编辑中当前使用的timespec。

从Qt 6.7开始,这是对timeZone属性的间接访问器。

另请参阅

timeZone

访问函数
属性 timeZone: QTimeZone#

该属性保存日期时间编辑控件当前使用的时区。

如果使用的日期时间格式包含时区指示器-即,一个tttttttttt格式说明符-每当解析用户输入时,都重新表示此时区,会覆盖用户可能指定的任何时区。

另请参阅

displayFormat

访问函数
__init__(t[, parent=None])#
参数:

使用父对象创建一个空的日期时间编辑器,并将其值设置为time

__init__(d[, parent=None])
参数:

使用父对象创建一个空的日期时间编辑器,并将其值设置为date

__init__(val, parserType[, parent=None])
参数:
  • val – 对象

  • parserTypeType

  • parentQWidget

__init__([parent=None])
参数:

parentQWidget

使用父对象创建一个空的日期时间编辑器。

__init__(dt[, parent=None])
参数:

使用父对象创建一个空的日期时间编辑器,并将其值设置为datetime

calendar()#
返回类型:

QCalendar

calendarPopup()#
返回类型:

布尔值

另请参阅

setCalendarPopup()

获取属性calendarPopup的值。

calendarWidget()#
返回类型:

QCalendarWidget

如果设置 calendarPopup 为 True 且 (sections() & DateSections Маск ) ≠ 0,则返回编辑器的日历小部件。

此函数创建并返回一个日历小部件,如果没有设置。

另请参阅

setCalendarWidget()

clearMaximumDate()#

重置 maximumDate 属性的函数。

clearMaximumDateTime()#

重置 maximumDateTime 属性的函数。

clearMaximumTime()#

重置 maximumTime 属性的函数。

clearMinimumDate()#

重置 minimumDate 属性的函数。

clearMinimumDateTime()#

重置 minimumDateTime 属性的函数。

clearMinimumTime()#

重置 minimumTime 属性的函数。

currentSection()#
返回类型:

部分

另请参阅

setCurrentSection()

currentSection 属性的获取器。

currentSectionIndex()#
返回类型:

int

currentSectionIndex 属性的获取器。

date()#
返回类型:

QDate

返回日期时间编辑的日期。

另请参阅

setDate()

date 属性的获取器。

dateChanged(date)#
参数:

dateQDate

每当日期更改时,都会发出此信号。新的日期通过date传递。

另请参阅

键盘跟踪

属性 dateᅟ 的通知信号。

dateTime()#
返回类型:

QDateTime

另请参阅

setDateTime()

属性 dateTimeᅟ 的获取器。

dateTimeChanged(dateTime)#
参数:

dateTimeQDateTime

当日期或时间更改时,会发出此信号。新的日期和时间通过datetime传递。

另请参阅

键盘跟踪

属性 dateTimeᅟ 的通知信号。

dateTimeFromText(text)#
参数:

text – str

返回类型:

QDateTime

返回对应给定 text 的合适日期和时间。

此虚拟函数在日期时间编辑器需要将用户输入的文本解释为值时使用。

另请参阅

textFromDateTime() validate()

displayFormat()#
返回类型:

str

另请参阅

setDisplayFormat()

属性 displayFormatᅟ 的获取器。

displayedSections()#
返回类型:

Section 的组合

属性 displayedSectionsᅟ 的获取器。

maximumDate()#
返回类型:

QDate

另请参阅

setMaximumDate()

属性 maximumDate 的获取器。

maximumDateTime()#
返回类型:

QDateTime

另请参阅

setMaximumDateTime()

属性 maximumDateTime 的获取器。

maximumTime()#
返回类型:

QTime

另请参阅

setMaximumTime()

属性 maximumTime 的获取器。

minimumDate()#
返回类型:

QDate

另请参阅

setMinimumDate()

属性 minimumDate 的获取器。

minimumDateTime()#
返回类型:

QDateTime

另请参阅

setMinimumDateTime()

属性 minimumDateTime 的获取器。

minimumTime()#
返回类型:

QTime

另请参阅

setMinimumTime()

属性 minimumTime 的获取器。

sectionAt(index)#
参数:

index – int

返回类型:

部分

返回 index 的部分。

如果格式是‘yyyy/MM/dd’,则 sectionAt(0) 返回 YearSection ,sectionAt(1) 返回 MonthSection ,sectionAt(2) 返回 YearSection

sectionCount()#
返回类型:

int

属性 sectionCount 的获取器。

sectionText(section)#
参数:

sectionSection

返回类型:

str

返回给定 section 的文本。

另请参阅

currentSection()

setCalendar(calendar)#
参数:

日历QCalendar

setCalendarPopup(enable)#
参数:

enable – bool

另请参阅

calendarPopup()

属性 calendarPopup 的设置器。

setCalendarWidget(calendarWidget)#
参数:

calendarWidgetQCalendarWidget

将指定的 calendarWidget 设置为用于日历弹出窗口的小部件。编辑器不会自动获得日历小部件的所有权。

注意

在设置日历小部件之前,必须将 calendarPopup 设置为 true。

setCurrentSection(section)#
参数:

sectionSection

另请参阅

currentSection()

属性 currentSection 的设置器。

setCurrentSectionIndex(index)#
参数:

index – int

另请参阅

当前章节索引()

属性 currentSectionIndex 的设置器。

setDate(date)#
参数:

dateQDate

另请参阅

date()

属性 date 的设置器。

setDateRange(min, max)#
参数:

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

设置日期时间编辑器允许的日期范围。

此便捷函数设置 minimumDatemaximumDate 属性。

setDateRange(min, max)

类似于

setMinimumDate(min)
setMaximumDate(max)

如果 minmax 无效,该函数将不执行任何操作。此函数会保留 minimumTime 属性。如果 max 小于 min,新的 maximumDateTime 属性应该是新的 minimumDateTime 属性。如果 max 等于 minmaximumTime 属性小于 minimumTime 属性,则 maximumTime 属性被设置为 minimumTime 属性。否则,此属性将保留 maximumTime 属性。

如果范围比所跨越的时间间隔更窄,例如跨越月底的一周,如果禁用键盘跟踪,则用户只能编辑到范围内后续日期。

另请参阅

minimumDate maximumDate setDateTimeRange() Keyboard Tracking

setDateTime(dateTime)#
参数:

dateTimeQDateTime

另请参阅

dateTime()

属性 dateTime 的设置器。

setDateTimeRange(min, max)#
参数:

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

设置日期时间编辑器允许的日期时间范围。

此便捷函数设置 minimumDateTimemaximumDateTime 属性。

setDateTimeRange(min, max)

类似于

setMinimumDateTime(min)
setMaximumDateTime(max)

如果 minmax 无效,此函数不执行任何操作。如果 max 小于 min,则 min 也用作 max

如果范围比其结束时间跨度更窄,例如跨越月底的一周,如果禁用键盘跟踪,用户只能将日期时间编辑到该范围的后半部分。

setDisplayFormat(format)#
参数:

format – str

另请参阅

displayFormat()

属性 displayFormatᅟ 的设置器。

setMaximumDate(max)#
参数:

maxQDate

另请参阅

maximumDate()

属性 maximumDateᅟ 的设置器。

setMaximumDateTime(dt)#
参数:

dtQDateTime

另请参阅

maximumDateTime()

属性 maximumDateTimeᅟ 的设置器。

setMaximumTime(max)#
参数:

maxQTime

另请参阅

maximumTime()

属性 maximumTimeᅟ 的设置器。

setMinimumDate(min)#
参数:

minQDate

另请参阅

minimumDate()

属性 minimumDateᅟ 的设置器。

setMinimumDateTime(dt)#
参数:

dtQDateTime

另请参阅

minimumDateTime()

属性 minimumDateTimeᅟ 的设置器。

setMinimumTime(min)#
参数:

minQTime

另请参阅

minimumTime()

属性 minimumTimeᅟ 的设置器。

setSelectedSection(section)#
参数:

sectionSection

选择 section。如果当前显示的分区中不存在 section,则此函数不执行任何操作。如果 sectionNoSection,则此函数将取消选中编辑器中的所有文本。否则,此函数将移动光标和当前分区到所选分区。

另请参阅

currentSection()

setTime(time)#
参数:

timeQTime

另请参阅

time()

属性 timeᅟ 的设置器。

setTimeRange(min, max)#
参数:

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

设置日期时间编辑器允许时间的范围。

此便捷函数设置了 minimumTimemaximumTime 属性。

请注意,这些仅分别约束数据时间编辑器的值在minimumDatemaximumDate上。当这些日期属性不一致时,在maximumDate之前的日期上允许在max之后的时间,以及在minimumDate之后的日期上允许在min之前的时间。

setTimeRange(min, max)

类似于

setMinimumTime(min)
setMaximumTime(max)

如果minmax无效,则此函数不做任何操作。此函数保留minimumDatemaximumDate属性。如果这些属性一致,并且max小于min,则将min用作max

如果范围比覆盖它的时间间隔更窄,例如从十点到同一小时后的十点的时间间隔,如果禁用键盘跟踪,则用户只能编辑时间到范围后期的一部分。

另请参阅

minimumTime maximumTime setDateTimeRange() 键盘跟踪

setTimeSpec(spec)#
参数:

specTimeSpec

另请参阅

timeSpec()

属性timeSpecᅟ的setter。

setTimeZone(zone)#
参数:

zoneQTimeZone

另请参阅

timeZone()

属性timeZoneᅟ的setter。

textFromDateTime(dt)#
参数:

dtQDateTime

返回类型:

str

此虚拟函数用于任何数据时间编辑器需要显示dateTime时使用。

如果您实现此功能,可能还需要重新实现validate()

另请参阅

dateTimeFromText() validate()

时间()#
返回类型:

QTime

返回日期时间编辑器的当前时间。

另请参阅

setTime()

属性 时间ᅟ 的获取器。

时间改变(时间)#
参数:

timeQTime

当时间改变时,会触发此信号。新时间通过 时间 传递。

另请参阅

键盘跟踪

属性 时间ᅟ 的通知信号。

时间规格()#
返回类型:

时间规格

另请参阅

setTimeSpec()

属性 时间规格ᅟ 的获取器。

时区()#
返回类型:

QTimeZone

另请参阅

setTimeZone()

属性 时区ᅟ 的获取器。