Я пытаюсь научиться работать с фреймами в tkinter, написал это так, что каждая страница - это отдельный класс:
import tkinter as tk
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("Multiple Frames Test")
self.resizable(False, False)
StartPage().pack()
def switch_frames(self, to_remove, to_add):
to_remove.pack_forget()
to_add.pack()
class StartPage(tk.Frame, App):
def __init__(self):
tk.Frame.__init__(self)
self.title1 = tk.Label(self, text="This is an awesome label")
self.title1.grid(row=0, column=0, padx=(20, 20), pady=(20, 20))
self.switch_btn1 = tk.Button(self, text="Switch to SecondaryPage", command=lambda: self.switch_frames(self, SecondaryPage))
self.switch_btn1.grid(row=1, column=0, padx=(20, 20), pady=(0, 20))
class SecondaryPage(tk.Frame, App):
def __init__(self):
tk.Frame.__init__(self)
self.title2 = tk.Label(self, text="This is also an awesome label")
self.title2.grid(row=0, column=0, padx=(20, 20), pady=(20, 20))
self.switch_btn2 = tk.Button(self, text="Switch to StartPage")
self.switch_btn2.grid(row=1, column=0, padx=(20, 20), pady=(0, 20))
my_app = App()
my_app.mainloop()
После нажатия кнопки для переключения на SecondaryPage я получаю сообщение об ошибке :
Файл «c: \ Users ...», строка 23, в
self.switch_btn1 = tk.Button (self, text = "Переключиться на SecondaryPage", command = lambda: self.switch_frames (self, SecondaryPage))
Файл «c: \ Users ...», строка 14, в switch_frames
to_add.pack ()
TypeError: pack_configure () отсутствует 1 обязательный позиционный аргумент: 'self'