如何使用Tkcalendar虚拟事件?



我仍然对tkcalendar虚拟事件用于绑定日历天选择上的用户操作感到困惑。写一些像follow,

calendar.bind("<<CalendarSelected>>", print(calendar.get_date())

一旦我运行脚本,打印默认日期,但是当我在显示的日历上选择时,什么都不打印。通常情况下,日历上任何日期的任何选择,如果真的装订,都应该打印出来。我做错了什么,对吗?

您需要使用lambda函数来代替

calendar.bind("<<CalendarSelected>>", lambda: print(calendar.get_date())

您的代码将当前绑定print函数的结果作为绑定的回调。由于print返回None,因此不会调用任何函数。

lambda创建一个匿名函数。

如果您的代码比单行更复杂,请将此代码放入自己的函数中,并在bind方法中使用该函数的名称,例如

calendar.bind("<<CalendarSelected>>", showDateToUser)

最新更新