PySide6.QtWidgets.QCalendarWidget

class QCalendarWidget

QCalendarWidget 类提供了一个基于月份的日历小部件,允许用户选择日期。更多

PySide6.QtWidgets.QCalendarWidget 的继承图

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

警告

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

../../_images/fusion-calendarwidget.png

小部件初始化为当前月份和年份,但QCalendarWidget提供了几个公共槽来更改显示的年份和月份。

默认情况下,选择今天的日期,用户可以使用鼠标和键盘选择日期。可以使用selectedDate()函数检索当前选择的日期。可以通过设置minimumDatemaximumDate属性来限制用户选择的日期范围。或者,可以使用setDateRange()便捷插槽一次性设置这两个属性。将selectionMode属性设置为NoSelection以完全禁止用户选择。请注意,也可以使用setSelectedDate()插槽以编程方式选择日期。

当前显示的月份和年份可以分别使用monthShown()yearShown()函数来获取。

一个新创建的日历小部件使用缩写的星期名称,星期六和星期日都以红色标记。日历网格不可见。显示周数,第一列的日子是日历区域设置的一周的第一天。

通过将horizontalHeaderFormat属性设置为SingleLetterDayNames,可以将日期的表示更改为单个字母的缩写(“M”表示“星期一”)。将相同的属性设置为LongDayNames可以使标题显示完整的日期名称。通过将verticalHeaderFormat属性设置为NoVerticalHeader,可以移除周数。通过使用setGridVisible()函数将gridVisible属性设置为true,可以打开日历网格:

../../_images/qcalendarwidget-grid.png
calendar = QCalendarWidget()
calendar.setGridVisible(True)

最后,可以使用setFirstDayOfWeek()函数更改第一列中的日期。

QCalendarWidget 类还提供了三个信号,selectionChanged()activated()currentPageChanged(),使得可以响应用户的交互。

通过为某些特殊星期、特殊日期或标题的渲染设置QTextCharFormat,可以很大程度上自定义标题、工作日或单日的渲染。

日历小部件仅使用了QTextCharFormat中的一部分属性。目前,前景色、背景色和字体属性用于确定小部件中各个单元格的渲染。

另请参阅

QDateEdit QTextCharFormat

class HorizontalHeaderFormat

此枚举类型定义了水平标题可以显示的各种格式。

常量

描述

QCalendarWidget.SingleLetterDayNames

标题显示日期的单字母缩写(例如,M 表示星期一)。

QCalendarWidget.ShortDayNames

标题显示日期的简短缩写(例如,周一显示为Mon)。

QCalendarWidget.LongDayNames

标题显示完整的星期名称(例如星期一)。

QCalendarWidget.NoHorizontalHeader

标题被隐藏。

class VerticalHeaderFormat

此枚举类型定义了垂直标题可以显示的各种格式。

常量

描述

QCalendarWidget.ISOWeekNumbers

标题显示由QDate::weekNumber()描述的ISO周数。

QCalendarWidget.NoVerticalHeader

标题被隐藏。

class SelectionMode

此枚举描述了在日历中选择日期时提供给用户的选择类型。

常量

描述

QCalendarWidget.NoSelection

日期不能被选择。

QCalendarWidget.SingleSelection

可以选择单个日期。

另请参阅

selectionMode

注意

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

property dateEditAcceptDelayᅟ: int

此属性保存非活动日期编辑在内容被接受之前显示的时间。

如果日历小部件的date edit is enabled,此属性指定在最近一次用户输入后,日期编辑保持打开的时间(以毫秒为单位)。一旦这段时间过去,日期编辑中指定的日期将被接受,并且弹出窗口将关闭。

默认情况下,延迟被定义为1500毫秒(1.5秒)。

Access functions:
property dateEditEnabledᅟ: bool

此属性保存日期编辑弹出窗口是否启用。

如果启用了此属性,当日历小部件获得焦点时,按下非修饰键将导致日期编辑弹出,允许用户以当前区域设置指定的格式指定日期。

默认情况下,此属性已启用。

日期编辑在外观上比QDateEdit更简单,但允许用户使用左右光标键在字段之间导航,使用上下光标键增加和减少单个字段,并使用数字键直接输入值。

另请参阅

dateEditAcceptDelay

Access functions:
property firstDayOfWeekᅟ: Qt.DayOfWeek

此属性保存一个值,用于标识第一列中显示的日期。

默认情况下,第一列中显示的日期是日历区域设置的一周的第一天。

Access functions:
property gridVisibleᅟ: bool

警告

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

此属性表示是否显示表格网格。

qcalendarwidget-grid1

calendar = QCalendarWidget()
calendar.setGridVisible(True)

默认值为 false。

Access functions:
property horizontalHeaderFormatᅟ: QCalendarWidget.HorizontalHeaderFormat

此属性保存水平标题的格式。

默认值为 ShortDayNames

Access functions:
property maximumDateᅟ: QDate

警告

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

此属性保存当前指定日期范围的最大日期。

用户将无法选择超过当前设置的最大日期的日期。

../../_images/qcalendarwidget-maximum.png
calendar = QCalendarWidget()
calendar.setGridVisible(True)
calendar.setMaximumDate(QDate(2006, 7, 3))

当设置最大日期时,如果选择范围变得无效,minimumDateselectedDate 属性会被调整。如果提供的日期不是有效的 QDate 对象,setMaximumDate() 函数将不执行任何操作。

默认的最大日期是公元9999年12月31日。您可以通过调用clearMaximumDate()来恢复此默认值(自Qt 6.6起)。

另请参阅

setDateRange()

Access functions:
property minimumDateᅟ: QDate

警告

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

此属性保存当前指定日期范围的最小日期。

用户将无法选择早于当前设置的最小日期的日期。

../../_images/qcalendarwidget-minimum.png
calendar = QCalendarWidget()
calendar.setGridVisible(True)
calendar.setMinimumDate(QDate(2006, 6, 19))

当设置最小日期时,如果选择范围变得无效,maximumDateselectedDate 属性会被调整。如果提供的日期不是有效的 QDate 对象,setMinimumDate() 函数将不执行任何操作。

默认的最小日期是公元前4714年11月25日。您可以通过调用clearMinimumDate()来恢复此默认值(自Qt 6.6起)。

另请参阅

setDateRange()

Access functions:
property navigationBarVisibleᅟ: bool

此属性控制导航栏是否显示。

当此属性为true(默认值)时,下个月、上个月、月份选择和年份选择控件将显示在顶部。

当属性设置为false时,这些控件将被隐藏。

Access functions:
property selectedDateᅟ: QDate

此属性保存当前选定的日期。

所选日期必须在由minimumDatemaximumDate属性指定的日期范围内。默认情况下,所选日期为当前日期。

另请参阅

setDateRange()

Access functions:
property selectionModeᅟ: QCalendarWidget.SelectionMode

此属性保存用户可以在日历中进行的选择类型。

当此属性设置为SingleSelection时,用户可以使用鼠标或键盘在允许的最小和最大日期之间选择一个日期。

当属性设置为NoSelection时,用户将无法选择日期,但仍然可以通过编程方式选择日期。请注意,当属性设置为NoSelection时,所选日期仍将是日历的选定日期。

默认值为SingleSelection

Access functions:
property verticalHeaderFormatᅟ: QCalendarWidget.VerticalHeaderFormat

此属性保存垂直标题的格式。

默认值为 QCalendarWidget::ISOWeekNumber。

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

父级QWidget

使用给定的parent构建一个日历小部件。

小部件使用当前月份和年份进行初始化,当前选择的日期是今天。

另请参阅

setCurrentPage()

activated(date)
Parameters:

日期QDate

每当用户按下回车键或双击日历小部件中的date时,都会发出此信号。

calendar()
Return type:

QCalendar

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

另请参阅

setCalendar()

clearMaximumDate()

属性 maximumDateᅟ 的重置功能。

clearMinimumDate()

属性 minimumDateᅟ 的重置功能。

clicked(date)
Parameters:

日期QDate

当鼠标按钮被点击时,会发出此信号。鼠标点击的日期由date指定。只有在点击有效日期时才会发出此信号,例如,日期不在minimumDate()maximumDate()之外。如果选择模式是NoSelection,则不会发出此信号。

currentPageChanged(year, month)
Parameters:
  • year – int

  • month – 整数

当当前显示的月份发生变化时,会发出此信号。新的yearmonth作为参数传递。

另请参阅

setCurrentPage()

dateEditAcceptDelay()
Return type:

整数

属性 dateEditAcceptDelayᅟ 的获取器。

dateTextFormat()
Return type:

字典的键类型为.QDate,值类型为QTextCharFormat。

返回一个从QDate到QTextCharFormat的QMap,显示所有使用特殊格式的日期,这些格式会改变它们的渲染方式。

另请参阅

setDateTextFormat()

dateTextFormat(date)
Parameters:

日期QDate

Return type:

QTextCharFormat

返回一个用于date的QTextCharFormat。如果日期没有特别渲染,字符格式可能为空。

firstDayOfWeek()
Return type:

DayOfWeek

另请参阅

setFirstDayOfWeek()

属性 firstDayOfWeekᅟ 的获取器。

headerTextFormat()
Return type:

QTextCharFormat

返回用于渲染标题的文本字符格式。

另请参阅

setHeaderTextFormat()

horizontalHeaderFormat()
Return type:

HorizontalHeaderFormat

属性 horizontalHeaderFormatᅟ 的获取器。

isDateEditEnabled()
Return type:

布尔

属性 dateEditEnabledᅟ 的获取器。

isGridVisible()
Return type:

布尔

属性 gridVisibleᅟ 的获取器。

isNavigationBarVisible()
Return type:

布尔

属性 navigationBarVisibleᅟ 的获取器。

maximumDate()
Return type:

QDate

另请参阅

setMaximumDate()

属性 maximumDateᅟ 的获取器。

minimumDate()
Return type:

QDate

另请参阅

setMinimumDate()

属性 minimumDateᅟ 的获取器。

monthShown()
Return type:

整数

返回当前显示的月份。月份编号从1到12。

paintCell(painter, rect, date)
Parameters:

使用给定的painterrect绘制由指定date确定的单元格。

selectedDate()
Return type:

QDate

另请参阅

setSelectedDate()

属性 selectedDateᅟ 的获取器。

selectionChanged()

当当前选择的日期发生变化时,会发出此信号。

用户可以使用鼠标或键盘更改当前选定的日期,或者程序员可以使用setSelectedDate()来更改。

另请参阅

selectedDate()

selectionMode()
Return type:

SelectionMode

另请参阅

setSelectionMode()

属性 selectionModeᅟ 的获取器。

setCalendar(calendar)
Parameters:

日历QCalendar

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

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

另请参阅

calendar()

setCurrentPage(year, month)
Parameters:
  • year – int

  • month – 整数

显示给定的monthyear,而不改变选定的日期。使用setSelectedDate()函数来更改选定的日期。

当前显示的月份和年份可以分别使用monthShown()yearShown()函数来获取。

setDateEditAcceptDelay(delay)
Parameters:

delay – 整数

另请参阅

dateEditAcceptDelay()

属性 dateEditAcceptDelayᅟ 的设置器。

setDateEditEnabled(enable)
Parameters:

enable – 布尔值

另请参阅

isDateEditEnabled()

属性 dateEditEnabledᅟ 的设置器。

setDateRange(min, max)
Parameters:

警告

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

通过设置minimumDatemaximumDate属性来定义一个日期范围。

日期范围限制了用户的选择,即用户只能选择指定日期范围内的日期。请注意

calendar = QCalendarWidget()
calendar.setDateRange(min, max)

类似于

calendar = QCalendarWidget()
calendar.setMinimumDate(min)
calendar.setMaximumDate(max)

如果minmax参数不是有效的QDate对象,此函数将不执行任何操作。

setDateTextFormat(date, format)
Parameters:

设置用于将给定的date渲染为format指定的格式。

如果 date 为空,则清除所有日期格式。

另请参阅

dateTextFormat()

setFirstDayOfWeek(dayOfWeek)
Parameters:

dayOfWeekDayOfWeek

另请参阅

firstDayOfWeek()

属性 firstDayOfWeekᅟ 的设置器。

setGridVisible(show)
Parameters:

显示 – 布尔值

另请参阅

isGridVisible()

属性 gridVisibleᅟ 的设置器。

setHeaderTextFormat(format)
Parameters:

formatQTextCharFormat

设置用于渲染标题的文本字符格式为format。如果您还设置了星期文本格式,此格式的前景色和背景色将优先于标题的格式。其他格式信息仍将由标题的格式决定。

另请参阅

headerTextFormat()

setHorizontalHeaderFormat(format)
Parameters:

格式HorizontalHeaderFormat

属性 horizontalHeaderFormatᅟ 的设置器。

setMaximumDate(date)
Parameters:

日期QDate

另请参阅

maximumDate()

属性 maximumDateᅟ 的设置器。

setMinimumDate(date)
Parameters:

日期QDate

另请参阅

minimumDate()

属性 minimumDateᅟ 的设置器。

setNavigationBarVisible(visible)
Parameters:

visible – 布尔值

属性 navigationBarVisibleᅟ 的设置器。

setSelectedDate(date)
Parameters:

日期QDate

另请参阅

selectedDate()

属性 selectedDateᅟ 的设置器。

setSelectionMode(mode)
Parameters:

modeSelectionMode

另请参阅

selectionMode()

属性 selectionModeᅟ 的设置器。

setVerticalHeaderFormat(format)
Parameters:

格式VerticalHeaderFormat

另请参阅

verticalHeaderFormat()

属性 verticalHeaderFormatᅟ 的设置器。

setWeekdayTextFormat(dayOfWeek, format)
Parameters:

设置用于渲染星期几dayOfWeek的文本字符格式为format。在前景和背景颜色的情况下,该格式将优先于标题格式。其他文本格式信息取自标题格式。

showNextMonth()

显示相对于当前显示月份的下一个月。请注意,所选日期不会更改。

showNextYear()

显示相对于当前显示年份的下一年中当前显示的月份。请注意,所选日期不会更改。

showPreviousMonth()

显示相对于当前显示月份的上一个月。请注意,所选日期不会更改。

showPreviousYear()

显示相对于当前显示年份的上一年的当前显示月份。请注意,所选日期不会更改。

showSelectedDate()

显示所选日期的月份。

showToday()

显示今天日期的月份。

updateCell(date)
Parameters:

日期QDate

更新由给定的date指定的单元格,除非更新被禁用或单元格被隐藏。

updateCells()

除非更新被禁用,否则更新所有可见的单元格。

另请参阅

updateCell()

verticalHeaderFormat()
Return type:

VerticalHeaderFormat

属性 verticalHeaderFormatᅟ 的获取器。

weekdayTextFormat(dayOfWeek)
Parameters:

dayOfWeekDayOfWeek

Return type:

QTextCharFormat

返回用于渲染星期几的文本字符格式 dayOfWeek

yearShown()
Return type:

整数

返回当前显示月份所在的年份。月份编号从1到12。