Tkinter使用DateEntry日期选择器如何将选中日期打印到控制台
实现打印选中日期的解决方案
原有代码问题说明
你当前的代码存在两处明显问题:
- 变量引用错误:你定义的日期选择器实例变量名为
cal,代码中用到的d并未声明 - 无触发逻辑:直接编写的打印语句只会在程序启动时执行一次,无法响应用户选择日期的交互动作
核心实现逻辑
tkcalendar的DateEntry组件提供了专属的<<DateEntrySelected>>事件,当用户完成日期选择操作时会自动触发该事件,你只需要绑定事件对应的回调函数,在回调内调用get()方法获取选中日期后打印到控制台即可。
完整可运行代码
import tkinter as tk from tkcalendar import DateEntry # 日期选中事件的回调函数 def print_date(event): # 获取选中的日期值 selected = cal.get() # 打印到控制台 print("选中的日期:", selected) root = tk.Tk() cal = DateEntry(root, width=12, year=2019, month=6, day=22, background='darkblue', foreground='white', borderwidth=2) # 绑定日期选择事件到回调函数 cal.bind("<<DateEntrySelected>>", print_date) cal.pack(padx=10, pady=10) root.mainloop()
可选实现:点击按钮打印日期
如果你希望点击按钮后才打印选中的日期,可以参考如下写法:
import tkinter as tk from tkcalendar import DateEntry def print_date(): selected = cal.get() print("选中的日期:", selected) root = tk.Tk() cal = DateEntry(root, width=12, year=2019, month=6, day=22, background='darkblue', foreground='white', borderwidth=2) cal.pack(padx=10, pady=10) # 新增打印按钮 print_btn = tk.Button(root, text="打印日期", command=print_date) print_btn.pack(padx=10, pady=5) root.mainloop()
内容的提问来源于stack exchange,提问作者Vivek Arora
相关产品推荐
相关产品推荐

