试图替换无法决定是隐藏还是可见的框架

时间:2012-12-23 21:14:19

标签: listbox

我有一个框架和一个创建列表框的功能。当我按下按钮时我想隐藏框架并创建一个新框架,在这个框架上我也想使用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,因此无法决定它是否应该隐藏或可见,但现在我不再确定了:(

1 个答案:

答案 0 :(得分:0)

我自己找到了答案!显然,它是导致问题的根窗口。我刚刚删除了self.grid(),一切都运行良好。如果有人知道为什么网格化根窗口会导致打包网格问题我会很感激解释:)