【问题标题】:How to go back to previous frame after button click using Tkinter on Python?在 Python 上使用 Tkinter 单击按钮后如何返回上一帧?
【发布时间】:2020-05-08 14:10:40
【问题描述】:

我想要一个带有 2 个按钮的 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()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    它确实有效,稍微扩大你的屏幕。框架在下面添加。

    我已尽可能按照您的风格对其进行了编辑:

    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()
    

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 2018-11-01
      相关资源
      最近更新 更多