PyQt - QCalendar 小部件

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
from PyQt4 import QtGui, QtCore

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 小部件输出