Python Tkinter () how to hide user interface

Hi, I am developing a single login in python using Tkinter (), I just want the login user interface to be hidden when the user logs in correctly, and the content user interface will be displayed ... so I thought that ui might be hidden or visibility would be hidden ? for example, I had this code ...

def httpGETCheck(username, password): .... # assumed that the user is correct if registeredUser: # how can I hide or set visible is false to all the UI in the showLogin() Module # and how can I show the showContent() UI or replaced the showContent() UI from showLogin() UI class ContentUI(): def showContent(self, frame): button1 = Button(frame, text="+", width=15, command=counterPlus) button1.grid() def showLogin(self, frame): self.contentUI = ContentUI() L1 = Label(frame, text="User Name") L1.pack( side = LEFT) L1.grid() E1 = Entry(frame, bd =5) E1.pack(side = RIGHT) E1.grid() L2 = Label(frame, text="Password") L2.pack( side = LEFT) L2.grid() E2 = Entry(frame, bd =5, show="*") E2.pack(side = RIGHT) E2.grid() submit = Button(frame, text="Login", width=15, command=lambda: httpGETCheck(E1.get(), E2.get())) submit.grid() class UIDisplay(): def play(self): root = Tk() root.title(title) root.geometry(dimension) app = Frame(root) contentUI = ContentUI() contentUI.showLogin(app) app.grid() root.mainloop() ad = UIDisplay() ad.play() 
+1
source share
1 answer

Here is an alternative: Define each "page" in the frame. Then use the lift calls to raise the corresponding frame above the others. (The following code is highly dependent on Brian Oakley's code here .)

 import Tkinter as tk class Page(tk.Frame): def __init__(self, master, text, height, width, *args, **kwargs): tk.Frame.__init__(self, *args, borderwidth=20, **kwargs) self.height = height self.width = width button = tk.Button(self, text=text, font=('Comic Sans MS', 20), command=lambda: self.callback()) button.pack(side="top", fill="both", expand=True) def onlift(self): root.geometry('{}x{}'.format(self.width, self.height)) self.lift() class App(tk.Frame): def __init__(self, *args, **kwargs): tk.Frame.__init__(self, *args, **kwargs) p1 = Page(self, 'Login 1', height=200, width=300) p2 = Page(self, 'Next page is 2', height=400, width=300) p3 = Page(self, 'We love number 3', height=400, width=600) p1.callback = p2.onlift p2.callback = p3.onlift p3.callback = p1.onlift p1.place(x=0, y=0, relwidth=1, relheight=1) p2.place(x=0, y=0, relwidth=1, relheight=1) p3.place(x=0, y=0, relwidth=1, relheight=1) p1.onlift() root = tk.Tk() app = App(root) root.mainloop() 

Above, I have defined only one type of Frame called Page . For your situation, you will need a Login frame, and then the following frame:

  p1 = Login(self, ...) p2 = Registered(self, ...) 

+3
source

All Articles