我仍然对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)