Ich möchte, dass das aktuelle Fenster durch den Inhalt ersetzt wird, anstatt ein neues Fenster zu öffnen. Hier ist mein Code:So ersetzen Sie das Fenster TKInter
from tkinter import *
def adminLogin():
global AnameEL
global ApwordEL # More globals :D
global ArootA
ArootA = Tk() # This now makes a new window.
ArootA.geometry('1280x720')
ArootA.title('Admin login') # This makes the window title 'login'
f1 = Frame(width=200, height=200, background="#D3D3D3")
f2 = Frame(ArootA, width=400, height=200)
f1.pack(fill="both", expand=True, padx=0, pady=0)
f2.place(in_=f1, anchor="c", relx=.5, rely=.5)
AnameL = Label(f2, text='Username: ') # More labels
ApwordL = Label(f2, text='Password: ') #^
AnameL.grid(row=1, sticky=W)
ApwordL.grid(row=2, sticky=W)
AnameEL = Entry(f2) # The entry input
ApwordEL = Entry(f2, show='*')
AnameEL.grid(row=1, column=1)
ApwordEL.grid(row=2, column=1)
AloginB = Button(f2, text='Login', command=CheckAdmin) # This makes the login button, which will go to the CheckLogin def.
AloginB.grid(columnspan=2, sticky=W)
def CheckAdmin():
if AnameEL.get() == "test" and ApwordEL.get() == "123" : # Checks to see if you entered the correct data.
r = Tk() # Opens new window
r.title('Sucess')
loginC = Button(r, text='Add new login', command=Signup)
loginC.grid(columnspan=2, sticky=W)
r.mainloop()
else:
r = Tk()
r.title('Error')
r.geometry('550x450')
rlbl = Label(r, text='\n[!] Invalid Login')
rlbl.pack()
r.mainloop()
def Signup(): # This is the signup definition,
global pwordE # These globals just make the variables global to the entire script, meaning any definition can use them
global nameE
global roots
roots = Tk() # This creates the window, just a blank one.
roots.title('Signup') # This renames the title of said window to 'signup'
intruction = Label(roots, text='Please Enter new Credidentials\n') # This puts a label, so just a piece of text saying 'please enter blah'
intruction.grid(row=0, column=0, sticky=E) # This just puts it in the window, on row 0, col 0. If you want to learn more look up a tkinter tutorial :)
nameL = Label(roots, text='New Username: ') # This just does the same as above, instead with the text new username.
pwordL = Label(roots, text='New Password: ') # ^^
nameL.grid(row=1, column=0, sticky=W) # Same thing as the instruction var just on different rows. :) Tkinter is like that.
pwordL.grid(row=2, column=0, sticky=W) # ^^
nameE = Entry(roots) # This now puts a text box waiting for input.
pwordE = Entry(roots, show='*') # Same as above, yet 'show="*"' What this does is replace the text with *, like a password box :D
nameE.grid(row=1, column=1) # You know what this does now :D
pwordE.grid(row=2, column=1) # ^^
signupButton = Button(roots, text='Signup', command=FSSignup) # This creates the button with the text 'signup', when you click it, the command 'fssignup' will run. which is the def
signupButton.grid(columnspan=2, sticky=W)
roots.mainloop() # This just makes the window keep open, we will destroy it soon
adminLogin()
Wie Sie an jeder Taste sehen können, drücken Sie ein neues Fenster geöffnet wird. Ich möchte, dass das aktuelle Fenster stattdessen ersetzt wird. Wie Sie an jeder Taste sehen können, drücken Sie ein neues Fenster wird geöffnet. Ich möchte, dass das aktuelle Fenster stattdessen ersetzt wird.
Danke für die Hilfe.
Danke @ sn8wman, das funktioniert! –