目錄
0、導入庫
1、返回日歷選中的日期
2、更改日歷控件周幾(比如一個月屬于周一的日期)的所有格子屬性
?3、更改日歷控件單個格子(指定日期)屬性
?4、日歷格子屬性
5、信號——clicked()
6、成果展示
0、導入庫
from PyQt5.QtCore import pyqtSignal,QThread,QTimer,Qt,QDate
from PyQt5.QtGui import QIcon,QBrush,QColor
1、返回日歷選中的日期
self.seleteQDate = self.calendarWidget.selectedDate()
print(self.calendarWidget.selectedDate()) # PyQt5.QtCore.QDate(2022, 5, 12) print(type(self.calendarWidget.selectedDate())) # <class 'PyQt5.QtCore.QDate'>
得到的是一個QDate類型
通過以下代碼可以將日期格式化得到字符串類型日期
selectedDate = self.seleteQDate.toString('yyyy-MM-dd dddd')
?2022-05-12 星期四
2、更改日歷控件周幾(比如一個月屬于周一的日期)的所有格子屬性
## 獲取周一字體格式self.fontStyle_ = self.calendarWidget.weekdayTextFormat(Qt.Monday) # 周六日格式## 替換字體顏色self.fontStyle_.setForeground(QBrush(QColor("#0076ed")))self.fontStyle_.setBackground(QBrush(QColor("#ffffff")))## 給周六、日設置新的字體格式self.calendarWidget.setWeekdayTextFormat(Qt.Sunday,self.fontStyle_)self.calendarWidget.setWeekdayTextFormat(Qt.Saturday,self.fontStyle_)
1、通過weekdayTextFormat屬性來獲得周一日期的格式
2、然后再利用setForegroud來更改前景色
3、將格式通過setweekdayTextFormat來對指定的周幾的幾個日期進行設置
?3、更改日歷控件單個格子(指定日期)屬性
self.fontStyle1 = self.calendarWidget.weekdayTextFormat(Qt.Monday)
self.fontStyle1.setBackground(QBrush(QColor("#ffffff")))
self.calendarWidget.setDateTextFormat(QDate(2022,5,13),fontStyle1)
1、通過weekdayTextFormat屬性來獲得周一日期的格式
2、然后再利用setBackgroud來更改前景色
3、將格式通過setDateTextFormat來對指定的日期單元格進行屬性設置
注:setDateTextFormat()有兩個參數,日期是QDate格式,通過QDate(年,月,日)可以得到
?4、日歷格子屬性
?有這些屬性
5、信號——clicked()
self.calendar.clicked.connect(self.showData)def showData(self,date):print(date.toString("yyyy-MM-dd dddd")
注:這里的點擊會自動傳回點擊選中的日期,所有槽函數showData可以接收一個參數
6、成果展示
?其它關于日歷控件的說明可以參考:
QCalendarWidget - Qt for Pythonhttps://doc.qt.io/qtforpython/PySide6/QtWidgets/QCalendarWidget.html