验证后如何关闭第一个窗口?

时间:2020-05-12 00:31:56

标签: python tkinter

操作方法是:验证数据时,第一个窗口关闭,第二个窗口继续循环。我感谢您的帮助 这是我的代码:

from tkinter import *
from tkinter import messagebox

class VentanaP():
    """docstring for ClassName"""
    def __init__(self, maestro):
        self.maestro = maestro
        self.maestro.geometry("%dx%d+0+0" % ( maestro.winfo_screenwidth(), maestro.winfo_screenheight()))
        self.maestro.config(bg="#3399CC")
        self.frame_login=Frame(self.maestro)
        self.frame_login.pack()

        self.boton_login=Button(self.frame_login,text="Login",command=self.Validar)
        self.boton_login.grid(row=5,column=0, padx=1,pady=10,sticky="e")

    def Validar(self):
        a="1"
        b="1"
        if a==b:
            self.nuevaVentana=Toplevel(self.maestro)
            self.app=VentanaS(self.nuevaVentana)
        else:
            messagebox.showinfo(message="Usuario o Contraseña\n Invalidos", title="Error", icon="info") 

class VentanaS():
    """docstring for VentanaS"""
    def __init__(self, raiz1):
        self.raiz1 = raiz1
        self.raiz1.geometry("%dx%d+0+0" % ( raiz1.winfo_screenwidth(), raiz1.winfo_screenheight()))
        self.raiz1.config(bg="white")

raiz=Tk()
VentanaP(raiz)

raiz.mainloop()

1 个答案:

答案 0 :(得分:0)

这可以解决问题。如果要关闭主循环,则必须调用self.meastro.destroy()或将其显示为self.meastro.deiconify。窗口的状态将被撤消,因此您可能需要更改它。

 def Validar(self):
        self.maestro.withdraw()
        a="1"
        b="1"
        if a==b:
            self.nuevaVentana=Toplevel(self.maestro)
            self.app=VentanaS(self.nuevaVentana)
        else:
            messagebox.showinfo(message="Usuario o Contraseña\n Invalidos", title="Error", icon="info")