0

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

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

现在,每当我的程序循环到某个屏幕时,我都会创建一个新日历,我觉得这效率低下。

例子:


在此处输入图像描述

谢谢!

4

1 回答 1

1

文档中所述,Calendar该类具有.selection_set()更改所选日期的方法。它以 a datetime.date、 adatetime.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()

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

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()
于 2022-01-19T12:49:56.917 回答