PyQt5 - QCalendar 小部件

  • 简述

    QCalendar小部件是一个有用的日期选择器控件。它提供基于月份的视图。用户可以使用鼠标或键盘选择日期,默认为今天的日期。也可以规定日历的日期范围。
    以下是此类的一些实用方法 -
    序号 方法和描述
    1
    setDateRange()
    设置可供选择的下限和上限日期
    2
    setFirstDayOfWeek()
    确定日历中第一列的日期
    预定义的日常数是 -
    • Qt.Monday
    • Qt.Tuesday
    • Qt.Wednesday
    • Qt.Thursday
    • Qt.Friday
    • Qt.Saturday
    • Qt.Sunday
    3
    setMinimumDate()
    设置选择的下限日期
    4
    setMaximumDate()
    设置选择的上限日期
    5
    setSelectedDate()
    将 QDate 对象设置为选定日期
    6
    showToday()
    显示今天的月份
    7
    selectedDate()
    检索选定的日期
    8
    setGridvisible()
    打开或关闭日历网格
  • 例子

    下面的示例有一个日历小部件和一个显示当前选定日期的标签。完整的代码如下 -
    
    import sys
    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    class Example(QtGui.QWidget):
       def __init__(self):
          super(Example, self).__init__()
          self.initUI()
          
       def initUI(self):
          cal = QtGui.QCalendarWidget(self)
          cal.setGridVisible(True)
          cal.move(20, 20)
          cal.clicked[QtCore.QDate].connect(self.showDate)
          
          self.lbl = QtGui.QLabel(self)
          date = cal.selectedDate()
          self.lbl.setText(date.toString())
          self.lbl.move(20, 200)
          
          self.setGeometry(100,100,300,300)
          self.setWindowTitle('Calendar')
          self.show()
          
       def showDate(self, date):
       
          self.lbl.setText(date.toString())
          
    def main():
    
       app = QtGui.QApplication(sys.argv)
       ex = Example()
       sys.exit(app.exec_())
       
    if __name__ == '__main__':
       main()
    
    上面的代码产生以下输出。所选日期显示在标签上 -
    QCalendar 小部件输出