Tkinter入门
前页 | 第3章. Hello, Again | 后页

# 更多组件参考

在这两个例子中,Frame组件被保存为一个名为`frame`本地变量(local variable) , 另外两个 button 被存贮到两个实例属性里. 这里隐藏着一个比较严肃的问题:当 `__init__` 函数返回,`frame`变量超出作用域时会发生什么事呢?

请放心; 实际上你不需要保留一个组件实例的引用.Tkinter会自动维护一个组件树, 所有一个组件在它的最后一个引用失去之后仍不会消失; 你必须明确地使用`destroy`方法消除一个组件.但是如果你创建一个组件后仍需要对它进行操作, 那么你最好为你保留这个组件的引用.

注意,你可以不保留一个组件的引用,用下面的方法创建组件有时会更方便:

     Button(frame, text="Hello", command=self.hello).pack(side=LEFT)

用这种方法将返回`None`(实际上是`pack`方法的返回值);如果你象下面这样操作,你将不会得到你想要的结果,为了安全起见,你最好使用一个临时变量分两步来创建一个组件.

     w = Button(frame, text="Hello", command=self.hello) w.pack(side=LEFT)

前页 | 首页 | 后页
代码描述 | 向上 | 更多关于组件名称