非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Python/Qtでカレンダーコントロール(QCalendarWidget)

   

PyQtでカレンダーコントロールを使う方法を備忘録として書いておきます。PyQtにもQCalendarWidgetというカレンダーコントロールがあります。

[ad#top-1]

完成形はこんな感じです。カレンダーの上にラベルが設置してあって、日付をクリックするとラベルに表示されるようになっています。

 

ソースコードはこちら。これをコピペして実行すれば上記が現れます。

import sys
from PyQt5.QtWidgets import (QWidget, QCalendarWidget, QLabel, QApplication)
from PyQt5.QtCore import QDate

class Calendar(QWidget):
  def __init__(self):
    super().__init__()
    calendar = QCalendarWidget(self)
    calendar.setGridVisible(True)
    calendar.move(30, 50)
    # 日付クリックでshowDate呼び出し
    calendar.clicked[QDate].connect(self.showDate)
    # ラベル
    self.label = QLabel(self)
    # 今日の日付
    date = calendar.selectedDate()
    # 日付をラベルにセット
    self.label.setText(date.toString())
    self.label.move(30, 20)
    self.setGeometry(300, 300, 350, 300)
    self.setWindowTitle('Calendar')
    self.show()

  def showDate(self, date):
    # クリックされた日付をラベルにセット
    self.label.setText(date.toString())

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = Calendar()
  sys.exit(app.exec_())
 

 

[ad#ad-1]

スポンサーリンク

 - Python