我想要的是,只要我在dateEntry小部件上,我就可以自由选择日期(即使我单击向下箭头,这一个也不会过时),如果我单击其他位置,则销毁最后一个(dateEntry)。在
问题是tkcalender是由多个小部件组成的,这就是为什么只在其中一个小部件上设置focusOut事件。在
from tkinter import *
from tkcalendar import DateEntry
def ok(e):
print(cal.get_date())
root = Tk()
cal = DateEntry(root, year=2010)
cal.pack(padx=10, pady=10)
cal.bind('<FocusOut>', lambda e: cal.destroy())
cal.bind('<Return>', ok) # validate with Enter
cal.focus_set()
root.mainloop()
如果你运行这段代码,然后你点击日期条目的箭头,这个被销毁了,我希望它一直呆在那里,直到你点击窗口中其他地方被销毁。在
如果我理解正确,您希望在单击“打开日历”时不要销毁
DateEntry
。这可以通过检查当前焦点和pass
如果当前焦点是Calendar
对象来实现。在试着按tab键来改变焦点,然后看。在
相关问题 更多 >
编程相关推荐