Python tkinter - 文本未显示(GUI)

时间:2016-04-01 21:50:22

标签: python python-3.x tkinter

我没有错误错误,我想知道为什么'TIMER'在我运行时没有出现在GUI中。它只显示一个白色的盒子。我试图在论坛上搜索类似于我的问题,但我找不到任何问题。 代码:

import tkinter


class study_timer:
    def __init__(self, master):
        self.master = master
        self.mainframe = tkinter.Frame(self.master, bg='white')
        self.mainframe.pack(fill = tkinter.BOTH, expand=True)

        self.build_grid()
        self.build_banner()

    def build_grid(self):
        self.mainframe.columnconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=0)
        self.mainframe.rowconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=0)

    def build_banner(self):
        banner = tkinter.Label(
            self.mainframe,
            bg='black',
            text='TIMER',
            fg='white',
            font=('Ravie Regular', 30)
        )
        banner.grid(
            row=0, column=0,
            stick='ew',
            padx=10, pady=10
        )

    if __name__ == "__main__":
        root = tkinter.Tk()
        root.mainloop()

1 个答案:

答案 0 :(得分:1)

如果要运行定义的函数,则应该实例化该类的对象。这些函数是从类结构中的构造函数( init )调用的。

其次,如果陈述的缩进是错误的。

第三,您应该将根对象作为参数发送到init函数。

这将有效

import tkinter


class study_timer:
    def __init__(self, master):
        self.master = master
        self.mainframe = tkinter.Frame(self.master, bg='white')
        self.mainframe.pack(fill = tkinter.BOTH, expand=True)

        self.build_grid()
        self.build_banner()

    def build_grid(self):
        self.mainframe.columnconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=0)
        self.mainframe.rowconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=0)

    def build_banner(self):
        banner = tkinter.Label(
            self.mainframe,
            bg='black',
            text='TIMER',
            fg='white',
            font=('Ravie Regular', 30)
        )
        banner.grid(
            row=0, column=0,
            stick='ew',
            padx=10, pady=10
        )

if __name__ == "__main__":
    root = tkinter.Tk()
    ss = study_timer(root)
    root.mainloop()