本篇介紹月曆控件的使用:
cal = QCalendarWidget(self)
複制
建立月曆控件
cal.clicked[QDate].connect(self.showDate)
複制
點選日期時會發射.clicked 信号,信号參數類型為PyQt5.QtCore.QDate
.toString()
複制
可将QDatae執行個體轉化為格式化的日期字元串
PyQt5.QtCore.QDate(2019, 4, 10) -> “周三 4月 10 2019”

完整的代碼如下:
from PyQt5.QtWidgets import (QWidget, QCalendarWidget,
QLabel, QApplication, QVBoxLayout)
from PyQt5.QtCore import QDate
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout(self)
cal = QCalendarWidget(self)#建立月曆控件
cal.setGridVisible(True)#設定網格可見
#點選日期時會發射.clicked 信号,信号參數類型為PyQt5.QtCore.QDate
cal.clicked[QDate].connect(self.showDate)#信号參數類型設定
vbox.addWidget(cal)
self.lbl = QLabel(self)
date = cal.selectedDate()
self.lbl.setText(date.toString())
vbox.addWidget(self.lbl)
self.setLayout(vbox)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Calendar')
self.show()
def showDate(self, date):#date為clicked信号傳進來的參數,QDate類型
self.lbl.setText(date.toString())
print(date.toString(),"\n",date)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
複制