Как использовать повторно используемый класс кадров в tkinter?

Хотя мне не совсем ясно, чего вы пытаетесь достичь, я обнаружил очевидную ошибку в вашем коде: Field.get() ожидает объект, который содержит поле в качестве аргумента, а не какое-либо (возможное) значение этого поля. Таким образом, вы должны иметь field.get(object).

Поскольку вы, кажется, ищете значение поля, вы можете получить это как:

Object objectValue = field.get(object);

Не нужно создавать тип поля и создать пустое значение / значение по умолчанию; или, возможно, что-то я пропустил.

-1
задан Goyo 18 January 2019 в 11:13
поделиться

1 ответ

Ваша переменная контроллера находится вне области видимости. Если вы отправите контроллер в функцию, я могу запустить код без ошибок:

class ViewBezettingBoven(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        label = tk.Label(self, text="Page One!!!")
        self.parent = parent
        self.window = FrameBovenverdieping(self)


        label.pack(pady=10,padx=10)
        #send controller to function
        self.widgets(controller)

    def widgets(self,controller):

        button1 = tk.Button(self, text="Back to Home",
                        command=lambda: controller.show_frame(StartPage))
        button1.pack()

        button2 = tk.Button(self, text="Page Two",
                        command=lambda: controller.show_frame(PageTwo))
        button2.pack()
0
ответ дан Stef van der Zon 18 January 2019 в 11:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: