简体   繁体   English

Tkinter-从顶层隐藏和显示主屏幕

[英]Tkinter - Hide and show main screen from toplevel

I am trying to create a main screen that is displayed only if the login is successful, but i cant figure out how to make the main screen visible/invisible 我正在尝试创建仅在登录成功后才显示的主屏幕,但是我不知道如何使主屏幕可见/不可见

from tkinter import *

class Login_screen(Frame):
    def __init__(self,master):
        self.open_login()

    def open_login(self):
        self.root2 = Toplevel()
        self.root2.geometry("400x200")
        self.grid_forget()
        self.app2 = Main_screen(self.root2)

class Main_screen(Frame):
    def __init__(self,master):
        Frame.__init__(self,master)
        self.master.grid()
        self.button = Button(master = self,text = "Close",command = lambda: self.close_windows())
        self.button.grid()

    def close_windows(self):
        self.master.destroy()
        Login_screen.master.grid()

root = Tk()
root.geometry("800x600")
app = Login_screen(root)
root.mainloop()

I figured out how it works: 我弄清楚了它是如何工作的:

from tkinter import *

class Main_screen(Frame):
    def __init__(self,master):
        Frame.__init__(self, master)
        self.grid()
        self.text = Label(text="Janela")
        self.text.grid()
        root.withdraw()
        self.create_login()

    def create_login(self):
        self.root2 = Toplevel()
        self.app2 = Login_screen(self.root2)

class Login_screen(Frame):
    def __init__(self,master):
        Frame.__init__(self,master)
        self.grid()
        self.botao1 = Button(self,text="Appear",command = lambda: self.show_main())
        self.botao1.grid()

    def show_main(self):
        self.master.destroy()
        root.deiconify()


root = Tk()
app = Main_screen(root)
root.mainloop()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM