操作方法是:验证数据时,第一个窗口关闭,第二个窗口继续循环。我感谢您的帮助 这是我的代码:
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()
答案 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")