【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却可以正常显示???(如果有人知道,请指教~)

 

 

欢迎交流,感谢任何提出建议的人······

 

posted @ 2019-10-17 18:30  学习python~~~  Views(683)  Comments(2Edit  收藏  举报