【发布时间】:2015-03-24 12:46:40
【问题描述】:
我有一个问题。我有在 Tkinter 上编写的程序。
import Tkinter as tk
import ttk
def about_window():
print(root.child_window)
if not root.child_window:
top2 = tk.Toplevel(root)
top2.title("About")
top2.resizable(0,0)
explanation = "This program is my test program"
ttk.Label(top2,justify=tk.LEFT,text=explanation).pack(padx=5,pady=2)
ttk.Button(top2,text='OK',width=10,command=top2.destroy).pack(pady=8)
root = tk.Tk()
root.resizable(0,0)
root.child_window = None
#print(root.child_window)
root.style = ttk.Style()
# ('clam', 'alt', 'default', 'classic')
root.style.theme_use("clam")
menu = tk.Menu(root)
root.config(menu=menu)
fm = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="Settings",menu=fm)
fm.add_command(label="Preferances")
hm = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="Help",menu=hm)
hm.add_command(label="About", command=about_window)
hm.add_command(label="Exit",command=root.quit)
#
tk.mainloop()
所以我可以点击“关于”标签并看到窗口:
但是在 Tkinter 中是否可以禁用同一窗口的任何下一次启动?
我已经尝试过 https://stackoverflow.com/a/24886806/2971192 但没有成功。
【问题讨论】:
-
有两种方法可以做到这一点,您是否希望用户能够在“关于”打开或不打开时与您的主窗口进行交互?
-
Jkdc,你能展示两种方式吗?
-
“没有成功”是什么意思?你有错误吗?尽管有
if声明,您是否获得了多个窗口?一般模式是正确的:第一次创建窗口,然后让它可见。这是一种非常常见的技术。