Python GUI открывает «новую страницу»

Когда я нажимаю кнопку, я хочу открыть новую сторону. Не новое окно, окно должно быть одинаковым, просто интерфейс должен измениться.

Как я могу решить это без открытия нового окна?

from tkinter import * page1=Tk() label1=Label(page1, text="This is page 1") label1.pack() def topage2(): page2=Tk() label2=Label(page2, text="This is page 2") label2.pack() button=Button(page1, text="To page 2", command=topage2) button.pack() mainloop() 

Вы можете создать два кадра в одном и том же месте и поднять их друг к другу с помощью лифта и более низких методов (пример, взятый у Брайана Окли здесь и слегка измененный):

 import Tkinter as tk class SampleApp(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) self.frame = tk.Frame(self) self.frame2 = tk.Frame(self) self.frame.place(relwidth=1, relheight=0.8, relx=0, rely=0) self.frame2.place(relwidth=1, relheight=0.8, relx=0, rely=0) self.label = tk.Label(self.frame, text="Hello, world") button1 = tk.Button(self, text="Click to hide label", command=self.hide_label) button2 = tk.Button(self, text="Click to show label", command=self.show_label) self.label.pack() button1.place(relwidth=0.5, relheight=0.15, relx=0.0, rely=0.825) button2.place(relwidth=0.5, relheight=0.15, relx=0.5, rely=0.825) def show_label(self, event=None): self.frame.lift(self.frame2) def hide_label(self, event=None): self.frame.lower(self.frame2) if __name__ == "__main__": app = SampleApp() app.mainloop() 

Вы можете разместить «одну страницу» в одном кадре, а «вторая страница» – в другой