我正在制作一个需要2个窗口的应用程序。第一个,我做所有标准的事情,例如
entity_id
但是在我的第二个窗口中,我仅致电
root = tk.Tk()
...code...
root.mainloop()
,并且有效。如果我愿意
root = tk.Tk()
它仍然有效。出于纯粹的好奇心,为什么?
代码:
root = tk.Tk()
...code...
root.mainloop()
答案 0 :(得分:1)
您不应多次致电tk.Tk()
。对于其他窗口,请使用tk.Toplevel()
。仅在极少数情况下才需要调用update
,大多数情况下,GUI依赖于mainloop
进行更新。
import tkinter as tk
class DecompilingChecker(tk.Toplevel):
def __init__(self, master):
super().__init__(master)
self.title("DecompilingChecker Toplevel")
def check(self):
print('checking')
class Bridge(tk.Toplevel):
def __init__(self, master):
super().__init__(master)
self.title("Bridge Toplevel")
class GUI(tk.Tk):
def __init__(self):
super().__init__()
self.title("GUI window")
self.bridge = Bridge(self)
self.d_checker = DecompilingChecker(self)
self.d_checker.check()
if __name__ == "__main__":
GUI().mainloop()