【发布时间】:2022-01-11 20:34:21
【问题描述】:
这可能是一个非常简单的问题,但我似乎找不到答案。
但是如何在没有用户输入的情况下更改 tkcalendar 日历的日期?
现在,每次我的程序循环到某个屏幕时,我都会创建一个新日历,我觉得这样做效率很低。
示例:
谢谢!
【问题讨论】:
标签: python tkcalendar
这可能是一个非常简单的问题,但我似乎找不到答案。
但是如何在没有用户输入的情况下更改 tkcalendar 日历的日期?
现在,每次我的程序循环到某个屏幕时,我都会创建一个新日历,我觉得这样做效率很低。
示例:
谢谢!
【问题讨论】:
标签: python tkcalendar
如documentation 中所示,Calendar 类有一个.selection_set() 方法来更改所选日期。它以datetime.date、datetime.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()
【讨论】: