__init __ () принимает 2 позиционных аргумента, но 3 было дано - PullRequest
0 голосов
/ 23 сентября 2019

После того, как раньше не было проблем, мой код теперь не работает, и я не знаю, что я изменил.При запуске я получаю следующее сообщение об ошибке:

 in __init__
    frame = F(container, self)
TypeError: __init__() takes 2 positional arguments but 3 were given


class theog(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        container = tk.Frame(self)
        container.pack(side='top', fill='both', expand= True)
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)
        self.frames = {}

        for F in (StartPage, BMR):
            frame = F(container, self)
            self.frames[F] = frame
            frame.grid(row=0, column=0, sticky='nsew')

        self.show_frame(StartPage)

    def show_frame(self, controller):
      frame = self.frames[controller]
      frame.tkraise()

class StartPage(tk.Frame):  
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="Start Page", width = 60)
        label.pack()
        button = tk.Button(self, text="Begin!", 
            command=lambda: controller.show_frame(BMR))
        button.pack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...