Go возврат к предыдущему кадру после нажатия кнопки с использованием Tkinter на Python - PullRequest
0 голосов
/ 08 мая 2020

Я пробовал делать кое-что для новичков в Tkinter. Я хотел создать возможность выбора между двумя кнопками (не нажимать / не нажимать). Если щелкнуть, я хотел бы дать возможность go вернуться на страницу, где вы снова можете выбрать один из этих двух вариантов.

Это то, что у меня сейчас есть, но кнопка «Go назад» ничего не делает. Как я могу go вернуться на свою первую страницу с помощью 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()

1 Ответ

0 голосов
/ 08 мая 2020

Работает, немного расширите экран. Рамки добавляются ниже.

Я немного отредактировал это в вашем стиле, насколько это возможно:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...