■概要
起動時、対象月のカレンダーを表示させるアプリをTkinterにて作成する。
また、テキストボックスに任意の日付を入力し、「変更」ボタンを押下した時、対象月のカレンダーに遷移させる機能を実装する。
▼前提条件・免責事項
本ツールの動作環境は、Windows10とする。
※Windows11やMacでは動作未確認(レイアウト崩れなど発生する可能性あり)
■フローチャート
本ツールのフローチャートを以下に示す。
■サンプルコード
本ツールのサンプルコードを以下に示す。
import tkinter as tk
from tkcalendar import Calendar, DateEntry
# 画面サイズの定数
FRAME_WIDTH = 250
FRAME_HEIGHT = 220
# カレンダー作成クラス
class TkCalendaerFrame(tk.Frame):
# コンストラクタ
def __init__(self, master):
super().__init__(master)
self.pack()
self.master.title("カレンダー")
self.master.geometry(f'{FRAME_WIDTH}x{FRAME_HEIGHT}')
# 日付入力のフォーム作成
self.data_entry_date = DateEntry(locale='ja_JP')
self.data_entry_date.place(x=50, y=20)
# 日付変更ボタンの作成
self.btn_change_date = tk.Button(
master,
text='変更',
command=self.change_date
)
self.btn_change_date.place(x=150, y=15)
# カレンダーの作成
self.calender_date = Calendar(
self.master,
showweeknumbers=False,
locale='ja_JP'
)
self.calender_date.place(x=10, y=50)
# 日付変更処理
def change_date(self):
# 入力した日付の取得
target_date = self.data_entry_date.get_date()
# 入力した日付に対して、カレンダーの日付を移動
self.calender_date.selection_set(target_date)
# メイン関数
def main():
# tkinterのインスタンス
root = tk.Tk()
# カレンダー作成クラスのインスタンス
root = TkCalendaerFrame(master=root)
# 画面表示
root.mainloop()
# メイン処理
if __name__ == "__main__":
# メイン関数呼び出し
main()
■実行結果
・ツール実行時
・テキストボックスに「2012/6/3」を入力し、「変更」を押下
■参考
本ツール作成にあたり参考とさせていただいたサイトを以下に示す。