我如何在函数root.destroy之后运行代码

时间:2019-06-02 05:19:35

标签: python tkinter exit destroy mainloop

你好,我正在使用tkinter在python上工作,我想在销毁Login类中的第一个窗口后运行一个窗口(在Main中),但是问题是代码停止在root.destroy上并且不执行代码的其余部分

我尝试用root.qui()替换root.destroy(),其余代码继续执行,但第一个窗口仍然出现

from tkinter import *
import threading

class Login:
    def __init__(self):
        self.window=Tk()
        self.window.geometry("600x500+50+50")
        self.window.resizable(False,False)
        self.window.configure(bg="#fafafa")

    def start(self):
        self.window.mainloop()

    def stop(self):
        self.window.destroy()


class Main: 
    def __init__(self):
        self.login=Login()


   def test(self):
        a=input("a : ")
        b=input("b : ")

        if a ==b:
            self.login.stop()
        print("window destroyed .....")

test=Main()
threading.Thread(target=test.test).start()
test.login.start()

1 个答案:

答案 0 :(得分:0)

最后,我在方法login.stop()中找到了解决该问题的方法

我将指令window.destroy()替换为window.after(0,window.destroy)