0
我在這段代碼中遇到了麻煩,它不會在某個點執行代碼。我無法用措辭來描述問題,但在代碼中,window.mainloop()
下的其餘代碼將不會按需運行,除非主窗口(gui)已關閉,這是有問題的。當def計算下的所有代碼已經完全執行時,我希望能夠print(t.test)
。我在技術上可以通過刪除window.mainloop()
來做到這一點,但是在我能夠收集至關重要的輸入之前,這將運行代碼。我需要保持編碼的結構如下所示。tkinter順序執行順序
import tkinter
class Test:
def __init__(self):
self.test = False
def calculate(window, userinput, t):
test = userinput.get()
print(test)
window.destroy()
t.test = True
def main():
t = Test()
gui = tkinter.Tk()
gui.title("example window")
gui.geometry("400x400")
userinput = tkinter.StringVar()
window = tkinter.Toplevel()
window.title("Entry")
tkinter.Message(window, text="Label", width="200").pack()
tkinter.Entry(window, width=30, textvariable=userinput).pack()
tkinter.Button(window, text="ok", command=lambda: calculate(window, userinput, t)).pack()
window.mainloop()
print(t.test)
gui.mainloop()
main()
編輯: 看來我是能夠使它的行爲方式相同,並通過把print(t.test)
了自己定義的功能下,然後調用它def calculate(userinput, window, t)
下,在最後一行保持相同的結構。我測試了這個,但它導致主窗口凍結。