PySide6.QtWidgets.QDateTimeEdit

class QDateTimeEdit

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

PySide6.QtWidgets.QDateTimeEdit 的继承图

继承者: QTimeEdit, QDateEdit

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

警告

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

../../_images/fusion-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.月份部分

QDateTimeEdit.YearSection

注意

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

property calendarPopupᅟ: bool

此属性保存当前日历弹出显示模式。

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

另请参阅

setDisplayFormat()

Access functions:
property currentSectionᅟ: QDateTimeEdit.Section

此属性保存微调框的当前部分。

Access functions:
property currentSectionIndexᅟ: int

此属性保存微调框的当前部分索引。

如果格式是‘yyyy/MM/dd’,显示文本是‘2001/05/21’,且光标位置是5,currentSectionIndex返回1。如果光标位置是3,currentSectionIndex是0,以此类推。

Access functions:
property dateᅟ: QDate

此属性保存小部件中设置的 QDate。

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

另请参阅

time dateTime

Access functions:
property dateTimeᅟ: QDateTime

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

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

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

如果QDateTimeEdit没有日期字段,设置此属性会将小部件的日期范围设置为从该属性的新值的日期开始和结束。

Access functions:
property displayFormatᅟ: str

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

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

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

格式

结果

dd.MM.yyyy

02.07.1969

MMM d yy

7月2日69

MMMM d yy

7月2日 69

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

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

另请参阅

displayedSections()

Access functions:
property displayedSectionsᅟ: Combination of QDateTimeEdit.Section

此属性保存日期时间编辑器中当前显示的字段。

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

Access functions:
property maximumDateᅟ: QDate

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

更改此属性会更新maximumDateTime属性的日期,同时保留maximumTime属性。设置此属性时,minimumDate会根据需要进行调整,以确保范围仍然有效。当这种情况发生时,如果minimumTime属性大于maximumTime属性,则也会调整minimumTime属性。否则,对此属性的更改将保留minimumDateTime属性。

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

Access functions:
property maximumDateTimeᅟ: QDateTime

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

更改此属性会隐式更新maximumDatemaximumTime属性,分别为此属性的日期和时间部分。设置此属性时,minimumDateTime会根据需要进行调整,以确保范围保持有效。否则,更改此属性将保留minimumDateTime属性。

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

Access functions:
property maximumTimeᅟ: QTime

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

更改此属性会更新maximumDateTime属性的时间,同时保留minimumDatemaximumDate属性。如果这些日期属性重合,在设置此属性时,minimumTime属性会根据需要进行调整,以确保范围仍然有效。否则,更改此属性会保留minimumDateTime属性。

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

另请参阅

minimumTime maximumDate maximumDateTime setTimeRange() Keyboard Tracking

Access functions:
property minimumDateᅟ: QDate

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

更改此属性会更新minimumDateTime属性的日期,同时保留minimumTime属性。设置此属性时,maximumDate会根据需要进行调整,以确保范围仍然有效。当这种情况发生时,如果maximumTime属性小于minimumTime属性,它也会被调整。否则,对此属性的更改将保留maximumDateTime属性。

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

Access functions:
property minimumDateTimeᅟ: QDateTime

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

更改此属性会隐式更新minimumDateminimumTime属性,分别为此属性的日期和时间部分。设置此属性时,maximumDateTime会根据需要进行调整,以确保范围保持有效。否则,更改此属性会保留maximumDateTime属性。

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

Access functions:
property minimumTimeᅟ: QTime

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

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

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

Access functions:
property sectionCountᅟ: int

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

Access functions:
property timeᅟ: QTime

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

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

另请参阅

date dateTime

Access functions:
property timeSpecᅟ: Qt.TimeSpec

请使用timeZone代替。

此属性保存日期时间编辑使用的当前时间规范。

自 Qt 6.7 起,这是对 timeZone 属性的间接访问器。

另请参阅

timeZone

Access functions:
property timeZoneᅟ: QTimeZone

此属性保存日期时间编辑小部件使用的当前时区。

如果使用的日期时间格式包含时区指示符 - 即 t, tt, ttttttt 格式说明符 - 每当解析用户输入时,用户的输入将重新表示为该时区,覆盖用户可能指定的任何时区。

另请参阅

displayFormat

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

构造一个带有parent的空日期时间编辑器。

__init__(d[, parent=None])
Parameters:

使用parent构造一个空的日期时间编辑器。值设置为date

__init__(t[, parent=None])
Parameters:

使用parent构造一个空的日期时间编辑器。值设置为time

__init__(dt[, parent=None])
Parameters:

使用parent构造一个空的日期时间编辑器。值设置为datetime

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

  • parserTypeType

  • parentQWidget

calendar()
Return type:

QCalendar

报告此小部件使用的日历系统。

另请参阅

setCalendar()

calendarPopup()
Return type:

布尔

另请参阅

setCalendarPopup()

属性 calendarPopupᅟ 的获取器。

calendarWidget()
Return type:

QCalendarWidget

如果calendarPopup设置为true且(sections() & DateSections_Mask) != 0,则返回编辑器的日历小部件。

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

另请参阅

setCalendarWidget()

clearMaximumDate()

属性 maximumDateᅟ 的重置功能。

clearMaximumDateTime()

属性 maximumDateTimeᅟ 的重置函数。

clearMaximumTime()

属性maximumTimeᅟ的重置功能。

clearMinimumDate()

属性 minimumDateᅟ 的重置功能。

clearMinimumDateTime()

属性 minimumDateTimeᅟ 的重置功能。

clearMinimumTime()

属性 minimumTimeᅟ 的重置功能。

currentSection()
Return type:

部分

另请参阅

setCurrentSection()

属性 currentSectionᅟ 的获取器。

currentSectionIndex()
Return type:

整数

属性 currentSectionIndexᅟ 的获取器。

date()
Return type:

QDate

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

另请参阅

setDate()

属性 dateᅟ 的获取器。

dateChanged(date)
Parameters:

日期QDate

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

另请参阅

Keyboard Tracking

属性 dateᅟ 的通知信号。

dateTime()
Return type:

QDateTime

另请参阅

setDateTime()

属性 dateTimeᅟ 的获取器。

dateTimeChanged(dateTime)
Parameters:

dateTimeQDateTime

每当日期或时间发生变化时,都会发出此信号。新的日期和时间通过 datetime 传递。

另请参阅

键盘 跟踪

属性 dateTimeᅟ 的通知信号。

dateTimeFromText(text)
Parameters:

文本 – str

Return type:

QDateTime

返回给定text的适当日期时间。

每当需要将用户输入的文本解释为值时,日期时间编辑就会使用此虚拟函数。

另请参阅

textFromDateTime() validate()

displayFormat()
Return type:

字符串

另请参阅

setDisplayFormat()

属性 displayFormatᅟ 的获取器。

displayedSections()
Return type:

Section的组合

属性 displayedSectionsᅟ 的获取器。

maximumDate()
Return type:

QDate

另请参阅

setMaximumDate()

属性 maximumDateᅟ 的获取器。

maximumDateTime()
Return type:

QDateTime

另请参阅

setMaximumDateTime()

属性 maximumDateTimeᅟ 的获取器。

maximumTime()
Return type:

QTime

另请参阅

setMaximumTime()

属性 maximumTimeᅟ 的获取器。

minimumDate()
Return type:

QDate

另请参阅

setMinimumDate()

属性 minimumDateᅟ 的获取器。

minimumDateTime()
Return type:

QDateTime

另请参阅

setMinimumDateTime()

属性 minimumDateTimeᅟ 的获取器。

minimumTime()
Return type:

QTime

另请参阅

setMinimumTime()

属性 minimumTimeᅟ 的获取器。

sectionAt(index)
Parameters:

索引 – int

Return type:

部分

返回位于index处的部分。

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

sectionCount()
Return type:

整数

属性 sectionCountᅟ 的获取器。

sectionText(section)
Parameters:

部分Section

Return type:

字符串

返回给定section中的文本。

另请参阅

currentSection()

setCalendar(calendar)
Parameters:

日历QCalendar

calendar设置为此小部件使用的日历系统。

该小部件可以使用任何支持的日历系统。默认情况下,它使用公历。

另请参阅

calendar()

setCalendarPopup(enable)
Parameters:

enable – 布尔值

另请参阅

calendarPopup()

属性 calendarPopupᅟ 的设置器。

setCalendarWidget(calendarWidget)
Parameters:

calendarWidgetQCalendarWidget

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

注意

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

setCurrentSection(section)
Parameters:

部分Section

另请参阅

currentSection()

属性 currentSectionᅟ 的设置器。

setCurrentSectionIndex(index)
Parameters:

索引 – int

另请参阅

currentSectionIndex()

属性 currentSectionIndexᅟ 的设置器。

setDate(date)
Parameters:

日期QDate

另请参阅

date()

属性 dateᅟ 的设置器。

setDateRange(min, max)
Parameters:

警告

本节包含从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() 键盘 跟踪

setDateTime(dateTime)
Parameters:

dateTimeQDateTime

另请参阅

dateTime()

属性 dateTimeᅟ 的设置器。

setDateTimeRange(min, max)
Parameters:

警告

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

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

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

setDateTimeRange(min, max)

类似于:

setMinimumDateTime(min)
setMaximumDateTime(max)

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

如果范围较窄,跨越了一个时间间隔的结束,例如跨越一个月结束的一周,如果键盘跟踪被禁用,用户只能将日期时间编辑为范围较后部分的一个。

setDisplayFormat(format)
Parameters:

format – str

另请参阅

displayFormat()

属性 displayFormatᅟ 的设置器。

setMaximumDate(max)
Parameters:

最大值QDate

另请参阅

maximumDate()

属性 maximumDateᅟ 的设置器。

setMaximumDateTime(dt)
Parameters:

dtQDateTime

另请参阅

maximumDateTime()

属性 maximumDateTimeᅟ 的设置器。

setMaximumTime(max)
Parameters:

最大值QTime

另请参阅

maximumTime()

属性 maximumTimeᅟ 的设置器。

setMinimumDate(min)
Parameters:

最小值QDate

另请参阅

minimumDate()

属性 minimumDateᅟ 的设置器。

setMinimumDateTime(dt)
Parameters:

dtQDateTime

另请参阅

minimumDateTime()

属性 minimumDateTimeᅟ 的设置器。

setMinimumTime(min)
Parameters:

最小值QTime

另请参阅

minimumTime()

属性 minimumTimeᅟ 的设置器。

setSelectedSection(section)
Parameters:

部分Section

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

另请参阅

currentSection()

setTime(time)
Parameters:

时间QTime

另请参阅

time()

属性 timeᅟ 的设置器。

setTimeRange(min, max)
Parameters:

警告

本节包含从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)
Parameters:

规格TimeSpec

注意

此函数已弃用。

另请参阅

timeSpec()

属性 timeSpecᅟ 的设置器。

setTimeZone(zone)
Parameters:

区域QTimeZone

另请参阅

timeZone()

属性 timeZoneᅟ 的设置器。

textFromDateTime(dt)
Parameters:

dtQDateTime

Return type:

字符串

每当需要显示dateTime时,日期时间编辑都会使用此虚拟函数。

如果你重新实现这个,你可能也需要重新实现 validate()

另请参阅

dateTimeFromText() validate()

time()
Return type:

QTime

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

另请参阅

setTime()

属性 timeᅟ 的获取器。

timeChanged(time)
Parameters:

时间QTime

每当时间改变时,就会发出此信号。新时间在time中传递。

另请参阅

键盘 跟踪

属性 timeᅟ 的通知信号。

timeSpec()
Return type:

TimeSpec

注意

此函数已弃用。

另请参阅

setTimeSpec()

属性 timeSpecᅟ 的获取器。

timeZone()
Return type:

QTimeZone

另请参阅

setTimeZone()

获取属性 timeZoneᅟ 的Getter。