假设以下代码行,我的问题是当用户点击两次更新时,窗口会显示两次。 是否有一种简单的方法可以禁用此功能并检查是否显示了小部件?
filemenu.add_command(label="update...", command=CreateUpdateWindow)
def CreateUpdateWindow():
window=Toplevel()
window.title("update")
答案 0 :(得分:1)
您可以使用entryconfigure方法
禁用菜单条目filemenu.entryconfigure("update...", state="disabled")
如果你禁用它,你可能想要输入一些代码,以便在用户删除窗口时重新启用它。
或者,您可以检查窗口是否存在,只有在窗口不存在时才创建窗口。这是一个完全有效的例子:
import Tkinter as tk
window = None
def CreateUpdateWindow():
global window
if window is None or not window.winfo_exists():
window = tk.Toplevel()
window.title("update")
window.lift()
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar)
filemenu.add_command(label="update...", command=CreateUpdateWindow)
menubar.add_cascade(label="File", menu=filemenu)
root.configure(menu=menubar)
root.mainloop()