- class QCalendarWidget#
QCalendarWidget
类提供了一个基于月份的日历控件,允许用户选择日期。更多…概要#
属性#
dateEditAcceptDelay
- 在接受内容之前,不活跃的日期编辑显示的时间dateEditEnabled
- 是否启用了日期编辑弹出窗口firstDayOfWeek
- 识别第一列显示的日期的值gridVisible
- 是否显示表格网格horizontalHeaderFormat
- 水平标题的格式maximumDate
- 当前指定日期范围的最大日期minimumDate
- 当前指定日期范围的最小日期navigationBarVisible属性
- 是否显示导航栏selectedDate属性
- 当前选择日期selectionMode属性
- 用户在日历中选择类型的选项verticalHeaderFormat属性
- 竖排表头格式
方法#
def
__init__方法
def
calendar方法
def
dateTextFormat方法
def
firstDayOfWeek方法
def
isGridVisible方法
def
maximumDate方法
def
minimumDate方法
def
monthShown方法
def
selectedDate方法
def
selectionMode方法
def
setCalendar方法
定义
updateCell()
定义
yearShown()
虚函数#
定义
paintCell()
槽函数#
信号#
定义
activated()
定义
clicked()
注意
此文档可能包含自动从 C++ 转换为 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告诉我们
详细描述#
警告
本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。
小部件以当前月份和年份初始化,但
QCalendarWidget
提供了几个公共槽来更改显示的年份和月份。默认情况下,会选中今天的日期,用户可以使用鼠标和键盘选择日期。可以使用
selectedDate()
函数检索当前选中的日期。通过设置minimumDate
和maximumDate
属性,可以将用户的选择限制在一个给定的日期范围内。也可以使用setDateRange()
方便槽,一次性设置两个属性。将selectionMode
属性设置为NoSelection
以禁止用户进行任何选择。注意,也可以使用setSelectedDate()
槽来程序化选择日期。可以使用
monthShown()
和yearShown()
函数分别检索当前显示的月份和年份。新创建的日历组件默认使用缩写形式显示星期名,周六和周日以红色标注。日历网格不可见。显示星期数,并且第一列天的日期是当前地区的每周的第一天。
通过将
horizontalHeaderFormat
属性设置为SingleLetterDayNames
,可以将日期的标注更改为单字母缩写(例如,“M”代表星期一)。将同一属性设置为LongDayNames
将在标题中显示完整的星期名。通过将verticalHeaderFormat
属性设置为NoVerticalHeader
来移除星期数。通过使用setGridVisible()
函数并将gridVisible
属性设置为 true,可以开启日历网格。calendar = QCalendarWidget() calendar.setGridVisible(True)
最后,可以使用
setFirstDayOfWeek()
函数更改第一列的天。QCalendarWidget 类也提供了三个信号
selectionChanged()
,activated()
和currentPageChanged()
,可以响应用户交互。通过设置某些特殊工作日的 QTextCharFormat,特殊日期的符号或标题的渲染,可以高度定制日历标题、周和工作日的渲染。
日历部件只使用了 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
可以选中单个日期。
注意
当使用
from __feature__ import true_property
时,可以直接使用属性;否则,可以通过访问函数来使用。- 属性dateEditAcceptDelay: int#
该属性表示在用户接受日期编辑器内容之前,停用的日期编辑器显示的时间。
如果日历小部件的日期编辑启用,则此属性指定日期编辑器在用户最近输入后保持打开的时间(以毫秒为单位)。一旦时间过去,日期编辑器中指定的日期将被接受,弹出窗口将被关闭。
默认情况下,延迟定义为1500毫秒(1.5秒)。
- 属性dateEditEnabled: bool#
该属性表示是否启用日期编辑器弹出窗口。
如果此属性被启用,则在日历小部件有焦点时按下非修改键,将弹出日期编辑器,允许用户以当前区域指定的形式指定日期。
默认情况下,此属性被启用。
与
QDateEdit
相比,日期编辑在视觉上更简单,但允许用户使用左右箭头键在字段之间导航,使用上下箭头键递增和递减单个字段,并使用数字键直接输入值。- 属性firstDayOfWeek: Qt.DayOfWeek#
该属性表示第一列显示的日期。
默认情况下,第一列显示的日期是日历区域的第一天。
- 属性gridVisible: bool#
警告
本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。
该属性表示是否显示表格网格。
calendar = QCalendarWidget() calendar.setGridVisible(True)
默认值是false。
- 属性horizontalHeaderFormat: QCalendarWidget.HorizontalHeaderFormat#
该属性表示水平表头的格式。
默认值是
ShortDayNames
。警告
本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。
此属性保存当前指定日期范围的最大日期。
用户将无法选择一个在当前设置的日期之后的日期。
calendar = QCalendarWidget() calendar.setGridVisible(True) calendar.setMaximumDate(QDate(2006, 7, 3))
设置最大日期时,如果选择范围无效,则会调整
minimumDate
和selectedDate
属性。如果提供的日期不是有效的 QDate 对象,则 setMaximumDate() 函数不执行任何操作。默认最大日期是公元前9999年12月31日。您可以通过调用 clearMaximumDate() 恢复此默认值(自 Qt 6.6 起可用)。
警告
本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。
此属性保存当前指定日期范围的最小日期。
用户将无法选择一个在当前设置的最小日期之前的日期。
calendar = QCalendarWidget() calendar.setGridVisible(True) calendar.setMinimumDate(QDate(2006, 6, 19))
设置最小日期时,如果选择范围无效,则会调整
maximumDate
和selectedDate
属性。如果提供的日期不是有效的 QDate 对象,则 setMinimumDate() 函数不执行任何操作。默认最小日期是公元前4714年11月25日。您可以通过调用 clearMinimumDate() 恢复此默认值(自 Qt 6.6 起可用)。
此属性表示是否显示导航栏。
当此属性为
true
(默认值)时,上方的导航栏会显示下一个月、上一个月、月份选择和年份选择控件。当此属性设为
false
时,这些控件将隐藏。此属性保存当前选择的日期。
所选日期必须介于
minimumDate
和maximumDate
属性指定的日期范围内。默认情况下,选择的日期是当前日期。- 属性 selectionMode: QCalendarWidget.SelectionMode#
该属性持有关于此日历中用户所能做出的选区类型。
当此属性设置为
SingleSelection
,用户可以在允许的最小和最大日期内选择日期,使用鼠标或键盘都可以。当此属性设置为
NoSelection
,用户将无法选择日期,但仍可以被程序选择。请注意,当属性设置为NoSelection
时所选的日期仍将保持为日历的选定日期。默认值是
SingleSelection
。- 属性 verticalHeaderFormat: QCalendarWidget.VerticalHeaderFormat#
该属性持有关于此日历的垂直标题的格式。
默认值是QCalendarWidget::ISOWeekNumber。
构造一个具有给定的
parent
的日历小部件。小部件使用当前的月份和年份初始化,当前选定的日期是今天。
当用户在日历小部件中按下Enter或Return键或双击
date
时,将发出该信号。- clearMaximumDate()#
重置属性
maximumDate
的函数。- clearMinimumDate()#
重置属性
minimumDateᅟ
的功能。当鼠标左键点击时,将发出此信号。鼠标点击的日期由
date
指定。只有当点击的是有效日期时,才会发出此信号,例如,日期不超出minimumDate()
和maximumDate()
。如果选择模式为NoSelection
,则不会发出该信号。- currentPageChanged(year, month)#
- 参数:
年 – int
月 – int
当前显示的月份更改时将发出此信号。作为参数传递新的
year
和month
。- dateEditAcceptDelay()#
- 返回类型:
int
属性
dateEditAcceptDelayᅟ
的获取器。- dateTextFormat()#
- 返回类型:
包含类型为 .QDate 的键和类型为 QTextCharFormat 的值的字典。
返回一个从 QDate 到 QTextCharFormat 的 QMap,显示了所有使用特殊格式的日期,该格式会更改它们的渲染。
- dateTextFormat(date)
- 参数:
date –
QDate
- 返回类型:
为
date
返回一个 QTextCharFormat。如果日期没有特殊渲染,则字符格式可以有空。属性
firstDayOfWeekᅟ
的获取器。- headerTextFormat()#
- 返回类型:
获取用于渲染标题的文本字符格式。
- horizontalHeaderFormat()#
- 返回类型:
属性
horizontalHeaderFormatᅟ
的获取器。- isDateEditEnabled()#
- 返回类型:
bool
属性
dateEditEnabled
的获取器。- isGridVisible()#
- 返回类型:
bool
属性
gridVisible
的获取器。- 返回类型:
bool
属性
navigationBarVisible
的获取器。属性
maximumDate
的获取器。属性
minimumDate
的获取器。- monthShown()#
- 返回类型:
int
返回当前显示的月份。月份从1到12进行编号。
使用给定的
painter
和rect
,绘制由给定的date
指定的单元格。属性
selectedDate
的获取器。- selectionChanged()#
当前选定的日期更改时发出此信号。
用户可以使用鼠标或键盘更改当前选定的日期,或者程序员可以使用
setSelectedDate()
方法来实现。- selectionMode()#
- 返回类型:
属性
selectionModeᅟ
的获取器。- setCurrentPage(year, month)#
- 参数:
年 – int
月 – int
显示给定
month
的年份,而不更改选中日期。使用setSelectedDate()
函数来更改选中日期。可以使用
monthShown()
和yearShown()
函数分别检索当前显示的月份和年份。- setDateEditAcceptDelay(delay)#
- 参数:
delay – int
属性
dateEditAcceptDelayᅟ
的设置器。- setDateEditEnabled(enable)#
- 参数:
enable – bool
属性
dateEditEnabledᅟ
的设置器。警告
本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。
通过设置
minimumDate
和maximumDate
属性来定义日期范围。日期范围限制了用户的选择,即用户只能选择指定日期范围内的日期。请注意
calendar = QCalendarWidget() calendar.setDateRange(min, max)
与
calendar = QCalendarWidget() calendar.setMinimumDate(min) calendar.setMaximumDate(max)
如果
min
或max
参数不是有效的QDate
对象,则此函数不执行任何操作。- setDateTextFormat(date, format)#
- 参数:
date –
QDate
format –
QTextCharFormat
设置用于绘制给定
date
的格式,该格式由format
指定。如果
date
为空,则清除所有日期格式。firstDayOfWeek
属性的设置器。- setGridVisible(show)#
- 参数:
show – bool
gridVisible
属性的设置器。- setHeaderTextFormat(format)#
- 参数:
format –
QTextCharFormat
设置用于渲染标题的文本字符格式为
format
。如果您还设置了星期文本格式,此格式的前景色和背景色将优先于标题的格式。其他格式信息仍然由标题的格式决定。- setHorizontalHeaderFormat(format)#
- 参数:
format –
HorizontalHeaderFormat
属性
horizontalHeaderFormatᅟ
的设置器。属性
maximumDateᅟ
的设置器。属性
minimumDateᅟ
的设置器。- 参数:
visible – bool
属性
navigationBarVisibleᅟ
的设置器。属性
selectedDateᅟ
的设置器。- setSelectionMode(mode)#
- 参数:
mode –
SelectionMode
属性
selectionModeᅟ
的设置器。- setVerticalHeaderFormat(format)#
- 参数:
format –
VerticalHeaderFormat
设置属性
verticalHeaderFormatᅟ
的设置器。- setWeekdayTextFormat(dayOfWeek, format)#
- 参数:
dayOfWeek –
DayOfWeek
format –
QTextCharFormat
设置用于渲染周中
dayOfWeek
天的文本字符格式。格式的优先级高于标题格式,在前景和背景颜色方面。其他的文本格式信息来自标题格式。- showNextMonth()#
显示相对于当前显示月份的下一个月。请注意,选择日期不会改变。
- showNextYear()#
显示相对于当前显示年份的下一年中的当前月份。请注意,选择日期不会改变。
- showPreviousMonth()#
显示相对于当前显示月份的上一个月。请注意,选择日期不会改变。
- showPreviousYear()#
显示相对于当前显示年份的上一年中的当前月份。请注意,选择日期不会改变。
- showSelectedDate()#
显示选中日期的月份。
- showToday()#
显示今天日期的月份。
更新指定
date
的单元格,除非更新已被禁用或单元格不可见。- updateCells()#
更新所有可见的单元格,除非更新已被禁用。
参见
- verticalHeaderFormat()#
- 返回类型:
属性
verticalHeaderFormat
的获取器。返回显示星期中天数时使用的文本字符格式
dayOfWeek
。- yearShown()#
- 返回类型:
int
返回当前显示月份的年份。月份从 1 到 12 编号。