0
我想创建一个类,它将成为我正在尝试创建的“游戏”的“自定义小部件”的模板。问题在于,如果我在调用类时只能使其工作,则指定将所有内容保存在一起的Frame对象。我一直在我的整个下午搜索,但没有找到一个具体的答案...不能正确地“连接”一个类与它的对象
下面的代码工作,而是仅仅需要写StatusButton().grid()
我必须使用StatusButton().frame.grid()
from tkinter import *
from tkinter.ttk import Progressbar
class StatusButton(Frame):
def __init__(self, master):
super(StatusButton, self).__init__()
self.frame = Frame(master, padx = 10, pady = 10, bd= 5, relief = RAISED)
self.label = Label(self.frame, text = "Hunger Bar")
self.pgbar = Progressbar(self.frame)
self.button = Button(self.frame, text = "Eat")
self.label.pack()
self.pgbar.pack()
self.button.pack(pady = 5, ipadx = 15)
return
root = Tk()
buttonslist = [StatusButton(root) for x in range(16)]
for r in range(4):
for c in range(4):
StatusButton(root).frame.grid(row = r, column = c)
root.mainloop()
我猜测我没有正确地将框架对象“连接”到类中,即使前者位于后者中,因为当前面的代码被执行时,但是用StatusButton().grid()
代替时,TKinter窗口正常弹出,但没有任何内容,就像我是“网格化”一个空的Frame对象一样。我该如何解决这个问题,以便当StatusButton().grid()
运行时,我的“自定义小部件的东西”出现?
很抱歉,如果这是一个小白错误,这是我的第一个星期在编程