我正在尝试制作一个应用程序,该应用程序具有基于单击按钮添加和删除框架的功能。现在,我正在尝试删除从根目录添加的最后一帧,并将添加功能以指定稍后要删除的帧。
当我创建框架时,我将它添加到一个对象列表中,如下所示:
def AddFrame(self):
newFrame= customFrame(len(self.frameList))
self.frameList.append(newFrame)
newFrame.pack()
当我试图通过引用删除它时,我正在使用 pop 和 pack_forget 将它从列表中删除并从 GUI 中删除它。我的基本功能是:
def RemoveLastFrame(self):
if(len(self.frameList)>0):
self.frameList.pop().pack_forget()
我通过在我在 init 方法中制作的指定框架上测试它来尝试 pack_forget。我不确定这个问题是否来自我试图在框架对象列表上执行此操作,或者是由于框架对象是 tk.Frame 的子项。这是完整的子类:
class customFrame(tk.Frame):
def __init__(self, index):
super(customFrame, self).__init__()
self.index = index
self.buttons= []
self.addButton = tk.Button(command=self.AddButton,text='Add Button to Frame')
self.addButton.pack()
def AddButton(self):
newButton = customButton(len(self.buttons))
newButton.config(text=('Button '+str(newButton.index)))
self.buttons.append(newButton)
newButton.pack()
class customButton(tk.Button):
def __init__(self,index):
super(customButton, self).__init__()
self.index = index
答案 0 :(得分:0)
我是个白痴。它正在工作,但它并没有像我预期的那样打开框架的孩子。一旦我改变了它,它就完美无缺