0

我有一个框架和一个创建列表框的函数。当我按下一个按钮时,我想隐藏框架并创建一个新框架,并且在这个框架上我还想使用 create_listbox 函数。隐藏框架并创建新框架非常有效。但是,当我尝试在 2:nd 框架上创建列表框时,窗口会变得疯狂并不断调整大小。这是该程序的简化版本。

class App(Frame):

def __init__(self, master):
    Frame.__init__(self, master)
    self.grid()
    self.f1 = Frame(self.master)
    self.f1.pack()
    self.f2 = Frame(self.f1)
    self.f2.grid()
    self.create_listbox(self.f1)

def create_listbox(aframe):
    self.listbox = Listbox(aframe)
    self.listbox.pack()

def hide_f2:
    self.f2.grid_forget()
    self.f3 = Frame(self.f1)
    self.create_listbox(self.f1)

首先我认为这可能是因为列表框对象同时属于 f2 和 f3,因此无法决定它应该隐藏还是可见,但现在我不确定了:(

4

1 回答 1

0

我自己找到了答案!显然它是导致问题的根窗口。我刚刚删除了self.grid(),一切都恢复正常了。如果有人知道为什么对根窗口进行网格化会导致包网格问题,我将不胜感激:)

于 2012-12-26T13:21:24.627 回答