我没有错误错误,我想知道为什么'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()
答案 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()