Использование классов для перекрытия кадров tkinter - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь понять, почему Дом не определен. Я пытаюсь создать простые приложения с графическим интерфейсом, которые переключаются на следующий кадр в основном кадре Tkinter. Каждая кнопка должна перейти на следующую страницу (класс). Я начинаю с основы, чтобы я мог копировать ее каждый раз. Вот моя ошибка:

builtins.AttributeError: тип объекта 'Home' не имеет атрибута 'tk'

from tkinter import *

class mainframe(Frame): 
    def raise_frame(rootFrame):
        rootFrame.tkraise

        Home = Frame(root)
        pageOne = Frame(root)
        pageTwo = Frame(root)

        for rootFrame in (Home, pageOne, pageTwo):
            rootFrame.grid(row=0, column=0)

class Home(Frame):           
    def __init__(self, root):
        Frame.__init__(self, root)
        self.root = root
        self.startIntro()

    def startIntro(self):
        self.introLabel = Label(self.root, text=" Welcome!", anchor=CENTER, background="white").pack()
        self.introButton = Button(self.root, text='Go to Page 1', command= lambda:raise_frame(pageOne)).pack()

class pageOne(Frame):
    def firstFrame(self):
        self.firstLabel = Label(self.root, text='Page 1').pack()
        self.firstButton = Button(self.root, text='Go to Page 2', command= lambda:raise_frame(pageTwo)).pack()

class pageTwo(Frame):
    def secondFrame(self):
        self.secondLabel = Label(self.root, text='Page 2').pack()
        self.secondButton = Button(self.root, text='Return to Home', command= lambda:raise_frame(Home)).pack()


def main():
    root=Tk()
    root.geometry('600x600')
    mainframe(Home)
    root.mainloop()

if __name__ == '__main__':
    main()
...