【问题标题】:How to Change tkcalendar date?如何更改 tkcalendar 日期?
【发布时间】:2022-01-11 20:34:21
【问题描述】:

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

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

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

示例:


谢谢!

【问题讨论】:

    标签: python tkcalendar


    【解决方案1】:

    documentation 中所示,Calendar 类有一个.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()
    

    【讨论】:

    • 谢谢你,这完美地回答了我的问题!我看了一下那个文档,所以我不知道我是怎么错过的。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多