如何更改 tkcalendar 日期?

How to Change tkcalendar date?

这可能是一个非常简单的问题,但我似乎找不到答案。

但是如何在没有用户输入的情况下更改 tkcalendar 日历的日期?

现在我正在创建一个新的日历,每次我的程序循环到某个屏幕,我觉得这很低效。

示例:


谢谢!

documentation 中所示,Calendar class 有一个 .selection_set() 方法来更改所选日期。它以 datetime.datedatetime.datetime 或根据日历中使用的语言环境格式化的字符串的形式接受要选择的日期参数。

示例:

import tkinter as tk
import tkcalendar as tkc
from datetime import date

root = tk.Tk()
cal = tkc.Calendar(root, year=1900, month=11, day=11)
cal.pack()

tk.Button(root, text="Change date", command=lambda: cal.selection_set(date(2001, 1, 18))).pack()

或者,您可以通过 textvariable 选项将 StringVar 连接到日历,并使用它来获取和设置所选日期:

import tkinter as tk
import tkcalendar as tkc
from datetime import date

root = tk.Tk()
datevar = tk.StringVar(root, "11/11/1990")
cal = tkc.Calendar(root, textvariable=datevar, locale="en_US")
cal.pack()

tk.Button(root, text="Change date", command=lambda: datevar.set("01/18/2001")).pack()