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 Widget Output
pyqt_basic_widgets.htm
廣告
© . All rights reserved.