PyQt5之QCalendarWidget
十八、QCalendarWidget
1.描述
提供了一个基于每月日历控件,允许用户选择一个日期。
继承自QWidget
2.功能作用
(1) 构造函数
QCalendarWidget(parent: QWidget = None)
(2) 日期范围
setMinimumDate(QDate date)
minimumDate() -> QDate
setMaximumDate(QDate date)
maximumDate() -> QDate
setDateRange(QDate min, QDate max)
(3) 日期编辑
setDateEditEnabled(bool enable)
isDateEditEnabled() -> bool
setDateEditAcceptDelay(int delay)
dateEditAcceptDelay() -> int
(4) 日期获取
monthShown() -> int
yearShown() -> int
selectedDate() -> QDate
(5) 格式外观
# 导航条
isNavigationBarVisible() -> bool
setNavigationBarVisible(bool)
# 一周的第一天
setFirstDayOfWeek(Qt.DayOfWeek dayOfWeek)
firstDayOfWeek() -> Qt.DayOfWeek
# 网格显示
isGridVisible() -> bool
setGridVisible(bool)
# 文本格式
setHeaderTextFormat(QTextCharFormat format)
headerTextFormat() -> QTextCharFormat
setHorizontalHeaderFormat(QCalendarWidget.HorizontalHeaderFormat format)
horizontalHeaderFormat() -> QCalendarWidget.HorizontalHeaderFormat
"""
QCalendarWidget.HorizontalHeaderFormat
QCalendarWidget.SingleLetterDayNames
英文
M
中文
周
QCalendarWidget.ShortDayNames
英文
Mon
中文
周一
QCalendarWidget.LongDayNames
英文
Monday
中文
星期一
QCalendarWidget.NoHorizontalHeader
标题是隐藏的。
"""
setVerticalHeaderFormat(QCalendarWidget.VerticalHeaderFormat format)
verticalHeaderFormat() -> QCalendarWidget.VerticalHeaderFormat
"""
QCalendarWidget.VerticalHeaderFormat
QCalendarWidget.ISOWeekNumbers
标题显示ISO周数,如QDate.weekNumber()所述。
QCalendarWidget.NoVerticalHeader
标题是隐藏的。
"""
setWeekdayTextFormat(self, Qt.DayOfWeek, QTextCharFormat)
weekdayTextFormat(Qt.DayOfWeek dayOfWeek) -> QTextCharFormat
setDateTextFormat(QDate date, QTextCharFormat format)
dateTextFormat(self, Union[QDate, datetime.date]) -> QTextCharFormat
dateTextFormat(self) -> object
(6) 选中
setSelectedDate(QDate date)
setSelectionMode(QCalendarWidget.SelectionMode mode)
selectionMode() -> QCalendarWidget.SelectionMode
"""
QCalendarWidget.SelectionMode
QCalendarWidget.NoSelection
日期无法选择。
QCalendarWidget.SingleSelection
可以选择单日期。
"""
(7) 常用的方法
showToday()
showSelectedDate()
showNextYear()
showPreviousYear()
showNextMonth()
showPreviousMonth()
setCurrentPage(int year, int month)
3.信号
activated(QDate date) # 只要用户按下Return或Enter键或双击日历小部件中的日期,就会发出此信号。
clicked(QDate date) # 单击有效日期时才会发出信号
currentPageChanged(int year, int month) # 当前显示的月份更改时会发出此信号。新的一年和一个月作为参数传递。
selectionChanged() # 当前选择的日期更改时会发出此信号