0

Every time i click on a button a new window pops up,I just want it done all in the same window, does anyone know how to keep it all in the same window please thanks. This is just some freestyle code so you don't have to edit the whole thing just to tell me how to do it. Here's my code, thanks for the help

from tkinter import *
import tkinter as tk
def mainscreen():
    global screen

    global hello
    screen = Tk()
    screen.geometry("1024x720")
    screen.title("WelcomeScreen")
    first = tk.Frame(screen).pack()

    Label(first,text = "welcomescreen", bg ="grey").pack()
    l = Label(first, text="HypeExtractor")
    l.pack()
    Label(text = "").pack()
    Button(text="Login",height="2",width="30",command = login).pack()
    Label(text = "").pack()
    Button(text="Register",height="2",width="30",command = register).pack()
    global hello
    hello = tk.Frame(screen).pack()

    screen.mainloop()


def login():
    #screen2 = Toplevel(screen)
    print(("hi"))
    usernames = username.get()
    print(usernames)
def register():
    global username
    global password
    global screen3
    global name
    global email

    screen3 = Toplevel(screen)
    screen3.title("Register")
    screen3.geometry("1024x720")
    username = StringVar()
    password = StringVar()
    name = StringVar()
    email = StringVar()


    Label(hello, text="Please enter details below").pack()
    Label(screen3, text = "").pack()
    Label(screen3, text="username").pack()
    usernameentry = Entry(screen3, textvariable=username)
    usernameentry.pack()
    Label(screen3, text="").pack()
    Label(screen3, text="password").pack()
    passwordnameentry = Entry(screen3, textvariable=password)
    passwordnameentry.pack()
    Label(screen3, text="name").pack()
    nameentry = Entry(screen3, textvariable=name)
    nameentry.pack()
    Label(screen3, text="").pack()
    Label(screen3, text="email").pack()
    emailentry = Entry(screen3, textvariable=email)
    emailentry.pack()
    Button(screen3, text="Register", command=details).pack()
    usernameentry.delete(0, END)
    passwordnameentry.delete(0,END)


def details():
    screen4 = Toplevel(screen)
    screen3.title("details")
    screen4.geometry("1024x720")
    userr = username.get()
    passrr = password.get()
    namerr = name.get()
    emailrr = password.get()

    Label(screen4, text=("These are you're details \nUsername: "+userr+"\nPassword: "+passrr+"\nName: "+namerr+"\nEmail: "+emailrr)).pack()
    Button(screen4, text="Confirm Registration",comman=bot).pack()
    Button(screen4, text="Edit Registration",command=register).pack()

def bot():
    print("hi")
mainscreen()
Samuel Okasia
  • 95
  • 1
  • 6
  • You want something like this: [stack the frames on top of each other](https://stackoverflow.com/a/7557028/7414759) – stovfl Apr 26 '20 at 20:22
  • ive seen that before, but i didn't really understand it, like why classes have been used, and ill be honest i dont really understand classes – Samuel Okasia Apr 26 '20 at 21:01
  • 1
    ***why classes have been used***: Both Python and Tkinter are **ObjectOriented**, therefore it's the *natural* way to do it. You can do all without using classes but you need a bunch of `globel` definition which are the culprit of failures. – stovfl Apr 26 '20 at 21:24

0 Answers0