Python Tkinter 在单击按钮时删除框架

时间:2021-02-13 13:47:04

标签: python tkinter button frame

我正在尝试制作一个应用程序,该应用程序具有基于单击按钮添加和删除框架的功能。现在,我正在尝试删除从根目录添加的最后一帧,并将添加功能以指定稍后要删除的帧。

当我创建框架时,我将它添加到一个对象列表中,如下所示:

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

1 个答案:

答案 0 :(得分:0)

我是个白痴。它正在工作,但它并没有像我预期的那样打开框架的孩子。一旦我改变了它,它就完美无缺