【python tkinter】对于窗口存在的认识
今天写了messagebox(信息提示框) 和 inputbox(输入框)。 对于 【窗口】 有了新的认识。。。
发现一个奇怪的事情(虽然原因很简单啦······)
def msg_box(title="消息框标题", text="提示内容"): try: root = Tk() root.withdraw() root.wm_attributes('-topmost', 1) messagebox.showinfo(title, text) except Exception as e: raise e
def input_box(title="Info"): window = Tk() # 主窗口 window["bg"] = "white" window.wm_attributes('-topmost', 1) # 窗口置顶 window.title(title) # 窗口标题 linedit = tk.Entry(borderwidth=2, width=40) linedit.grid(row=0, padx=5, pady=20, columnspan=10) b = tk.Button(window_1, text='退出', command=window.quit, width=5, relief="groove", bg="white") b.grid(row=1, column=5, columnspan=3, pady=15) window.mainloop() # 循环消息,让窗口活跃
很明显,单独运行上面2段程序,是可以顺利执行的。
但 2个程序 先后运行呢???
结果很有趣。。。 一开始吓到我了。
有人可能会说 这肯定是第一个msgbox的影响,msgbox窗口没有关闭!
我也知道啊~~~
但 这意味着什么?
msgbox() root = TK() 产生了一个root窗口
inputbox() window = Tk() 产生了一个 window窗口
结果是 root窗口 影响了 window窗口 ,或是 root窗口 和 window窗口根本是同一个窗口?????? (请GUI大神指教~)
我觉得root窗口和window窗口是同一个。 (作为程序员,"觉得"这个词不应该出现······)
也就是msgbox里的root窗口,在inputbox窗口里 再次出现。但我不理解为什么 输入框ENTRY 消失了? 而Button却可以正常显示???(如果有人知道,请指教~)
欢迎交流,感谢任何提出建议的人······