如何在Python上使用Tkinter单击按钮后返回上一帧?

如何在Python上使用Tkinter单击按钮后返回上一帧?,python,tkinter,Python,Tkinter,我想要一个有两个按钮的GUI。单击任意一个按钮后,我希望看到一个新的GUI,它有一个按钮,可以使用这两个按钮再次返回主GUI 这就是我现在拥有的,但是“返回”按钮没有任何作用。如何使用tkinter返回到我的第一页 from tkinter import * root = Tk() root.title('Frames') root.geometry('500x250+300+300') # Position frame frame = LabelFrame(root, text='Suc

我想要一个有两个按钮的GUI。单击任意一个按钮后,我希望看到一个新的GUI,它有一个按钮,可以使用这两个按钮再次返回主GUI

这就是我现在拥有的,但是“返回”按钮没有任何作用。如何使用tkinter返回到我的第一页

from tkinter import *


root = Tk()
root.title('Frames')
root.geometry('500x250+300+300')

# Position frame
frame = LabelFrame(root, text='Such a dilemma', padx=25, pady=25)
frame.pack(padx=10, pady=50)

# What do the buttons do
def bad():
    frame.grid_forget()
    b.grid_forget()
    b2.grid_forget()
    slechtekeuze = Label(frame, text='Bad choice')
    slechtekeuze.grid(row=0, column=0, columnspan=2)

    # Option to got back
    homepage = Button(frame, text='Go back', command=back)
    homepage.grid(row=1, column=0, columnspan=2, pady=10)

def good():
    frame.grid_forget()
    b.grid_forget()
    b2.grid_forget()
    slechtekeuze = Label(frame, text='Good choice')
    slechtekeuze.grid(row=0, column=0, columnspan=2)

    # Option to go back
    homepage = Button(frame, text='Terug', command=back)
    homepage.grid(row=1, column=0, columnspan=2, pady=10)


def back():
    frame.grid_forget()
    frame1 = LabelFrame(root, text='Such a dilemma', padx=25, pady=25)
    frame1.pack(padx=10, pady=50)

    b = Button(frame1, text="Don't click!!!", fg='red', command=bad)
    b2 = Button(frame1, text='Click!!!', fg='green', command=good)

    b.grid(row=0, column=0, padx=3)
    b2.grid(row=0, column=1, padx=3)

# Create the buttons and put them in the frame
b = Button(frame, text="Don't click!!!", fg='red', command=bad)
b2 = Button(frame, text='Click!!!', fg='green', command=good)

b.grid(row=0, column=0, padx=3)
b2.grid(row=0, column=1, padx=3)

root.mainloop()

它确实有效,请稍微扩展一下屏幕。框架添加到下面

我尽可能地以您的风格对其进行了编辑:

from tkinter import *


root = Tk()
root.title('Frames')
root.geometry('500x250+300+300')

# Position frame
frame = LabelFrame(root, text='Such a dilemma', padx=25, pady=25)
frame.pack(padx=10, pady=50)

# What do the buttons do
def bad(frame):
    frame.destroy()
    frame = LabelFrame(root, text='Such a dilemma', padx=25, pady=25)
    frame.pack(padx=10, pady=50)
    slechtekeuze = Label(frame, text='Bad choice')
    slechtekeuze.grid(row=0, column=0, columnspan=2)

    # Option to got back
    homepage = Button(frame, text='Go back', command=lambda:back(frame))
    homepage.grid(row=1, column=0, columnspan=2, pady=10)

def good(frame):
    frame.destroy()
    frame = LabelFrame(root, text='Such a dilemma', padx=25, pady=25)
    frame.pack(padx=10, pady=50)
    slechtekeuze = Label(frame, text='Good choice')
    slechtekeuze.grid(row=0, column=0, columnspan=2)

    # Option to go back
    homepage = Button(frame, text='Terug', command=lambda:back(frame))
    homepage.grid(row=1, column=0, columnspan=2, pady=10)


def back(frame):
    frame.destroy()
    frame = LabelFrame(root, text='Such a dilemma', padx=25, pady=25)
    frame.pack(padx=10, pady=50)

    b = Button(frame, text="Don't click!!!", fg='red', command=lambda:bad(frame))
    b2 = Button(frame, text='Click!!!', fg='green', command=lambda:good(frame))

    b.grid(row=0, column=0, padx=3)
    b2.grid(row=0, column=1, padx=3)

# Create the buttons and put them in the frame
b = Button(frame, text="Don't click!!!", fg='red', command=lambda:bad(frame))
b2 = Button(frame, text='Click!!!', fg='green', command=lambda:good(frame))

b.grid(row=0, column=0, padx=3)
b2.grid(row=0, column=1, padx=3)

root.mainloop()