天天看點

PyQt5 月曆控件(QCalendarWidget)

本篇介紹月曆控件的使用:

cal = QCalendarWidget(self)           

複制

建立月曆控件

cal.clicked[QDate].connect(self.showDate)           

複制

點選日期時會發射.clicked 信号,信号參數類型為PyQt5.QtCore.QDate

.toString()           

複制

可将QDatae執行個體轉化為格式化的日期字元串

PyQt5.QtCore.QDate(2019, 4, 10) -> “周三 4月 10 2019”

PyQt5 月曆控件(QCalendarWidget)

完整的代碼如下:

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_())           

複制