可以使用日历小部件的以下属性来配置其显示:
minimumDate:此属性用于指定最小日期范围。 maximum date:此属性用于指定最大日期范围。 selectionMode:此属性有助于启用或禁用用户从日历小部件中选择日期的功能。如果此属性设置为NoSelection,则不允许用户选择任何日期。 verticalHeaderFormat:通过将此属性设置为NoVerticalHeader,可以从日历小部件中删除周数。 gridVisible:此属性有助于使日历网格可见或不可见。可以将此属性设置为布尔值True以使日历网格可见。 HorizontalHeadPerformat:此属性用于设置要显示的日期格式。以下是可用的选项: SingleLetterDayNames:days的标题中显示一个单独的字母,例如M代表星期一,T代表星期二,等等。 ShortDayNames:日期的短格式显示在标题中,例如周一表示周一,周二表示周二,等等。 LongDayNames:标题以完整的形式显示天,如星期一、星期二等。 NoHorizontalHeader:在HorizontalHeaderFormat中使用此选项会使标题不可见。
QCalendarWidget类
selectedDate():此方法返回当前选定的日期。日期作为QDate对象返回。 monthShown():此方法返回当前显示的月份。 yearShowed():此方法返回当前显示的年份。 setFirstDayOfWeek():此方法用于设置第一列中的星期几。 selectionChanged():当用户更改当前选定日期时调用此方法。
QDate 类
currentDate():此方法将系统日期作为QDate实例返回。 setDate():此方法根据提供的年、月和日设置日期。 year():此方法从指定的QDate实例返回年份。 month():此方法从指定的QDate实例返回月份。 day():此方法从指定的QDate实例返回日期。 dayOfWeek():此方法从指定的QDate实例返回星期几。 addDays():此方法将指定天数添加到指定日期并返回新日期。 addMonths():此方法将指定的月数添加到指定日期并返回新日期。 addYears():此方法将指定的年数添加到指定日期并返回新日期。 daysTo():此方法返回两个日期之间的天数。 daysInMonth():此方法返回指定月份中的天数。 daysInYear():此方法返回指定年份中的天数。 isLeapYear():如果指定日期在闰年中,则此方法返回true。 toPyDate():此方法以字符串形式返回日期。format参数确定结果字符串的格式。
以下表达式用于指定格式
d: 此表达式将日期显示为不带前导零(1到31)的数字 dd:此表达式将日期显示为带前导零(01到31)的数字 ddd:此表达式将日期显示为短格式(周一、周二等) dddd:此表达式将日期显示为长格式(周一、周二,等等) M:此表达式将月份显示为不带前导零(1到12)的数字 MM:此表达式将月份显示为带前导零(01到12)的数字 MMM:此表达式将月份显示为短格式(一月、二月等) MMMM:此表达式将月份显示为长格式(一月、二月等) yy:表达式将年份显示为两位数(00到99) yyyy:此表达式将年份显示为四位数
Date Edit 部件的配置
minimum date:通过使用此属性可以为小部件定义最小日期 maximumDate:通过使用此属性可以为小部件定义最大日期
QDateEdit 类
setDate(): 此方法用于设置要在小部件中显示的日期 setDisplayFormat():此方法用于设置日期编辑小部件中显示的日期的日期格式
实例
基于Dialog without Buttons模板创建新应用程序 拖出一个Calendar Widget部件和一个Date Edit部件 保存为demoCalendar.ui文件 使用pyuic生成demoCalendar.py文件 创建callCalendar.py文件,代码如下
import sys
from PyQt5.QtWidgets import QDialog,QApplication
from cookbook_200425.demoCalendar import *
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui=Ui_Dialog()
self.ui.setupUi(self)
self.ui.calendarWidget.selectionChanged.connect(self.dispdate)
self.show()
def dispdate(self):
self.ui.dateEdit.setDate(self.ui.calendarWidget.selectedDate())
if __name__=="__main__":
app=QApplication(sys.argv)
w=MyForm()
w.show()
sys.exit(app.exec())