gpt4 book ai didi

python - 移动焦点后 Tkcalendar 清除 DateEntry

转载 作者:行者123 更新时间:2023-12-01 00:11:32 25 4
gpt4 key购买 nike

我有一个 DateEntry 小部件和一个用于清除 DateEntry 内容的按钮。我希望 DateEntry 为空,除非用户选择日期。

我的问题是,如果我选择 DateEntry 小部件并为其提供焦点,那么第一次使用清除按钮将不起作用,因为 DateEntry 在失去焦点后会自动完成。

示例:

from tkinter import *
from tkinter import ttk
from tkcalendar import DateEntry

def clearDateEntry():
clearButton.focus_set()
myDateEntry.delete(0,END)

root=Tk()

myDateEntry=DateEntry(root)
myDateEntry.pack()
myDateEntry.delete(0,END)

clearButton=Button(root,text='clear',command=clearDateEntry)
clearButton.pack()

root.mainloop()

要复制:给予 DateEntry 焦点,然后单击清除。

clearDateEntry() 函数中,我首先将焦点移至清除按钮,我希望该按钮会触发自动完成,以便我可以在之后立即删除它,但这并没有'不工作。

如何使 clearDateEntry() 在第一次真正清除 DateEntry?如果有办法关闭 DateEntry 的自动完成功能,那也可以解决我的问题。

最佳答案

DateEntry 设置为在焦点移出时验证条目内容(validate 选项设置为“focusout”),如果内容不是有效日期,今天的日期被输入到条目中。这个想法是在条目中始终有一个有效的日期。

因此,您可以通过设置简单地摆脱此行为

myDateEntry.configure(validate='none')

这样,条目内容不再在焦点移出时验证,但在单击下拉按钮时仍会进行验证,因此在显示日历时不会出现无效日期的问题。

关于python - 移动焦点后 Tkcalendar 清除 DateEntry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59607575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com