tk/frame

Tk组件之frame

在Tk里面, frame 是一个很简单,又很基本的组件。
它的主要作用是作为其它组件的容器,起一个分组的作用,从而可以把一组组件当作一个整体来考虑。

窗口布局本质上是对一个矩形区域内空间的划分。而划分的习惯通常是以一个个的矩形为单位。一个组件通常就是一个矩形的区域。 一个frame组件也可以看作是得到一个矩形区域的方式。然后在这个矩形空间内,可以继续进行局部空间内的窗口布局。 从这个角度讲,frame的产生和出现是一个分而治之的思想的体现。

分而治之是从顶层往底层看得出的一个方法。从底层网上看实际上也有这种需求。 从底层往上看,窗口布局,实质上也可以看作是不同组件在空间分配上协商出的一个结果和规则。 当几个小的组件排在一起组成一个局部整体,这个整体在空间分配上与其他组件进行协调时,显然派出一个代表于其它各方进行协调是最简便的方式。这个代表要能代表其他组件,并约束其范围之内的个体。frame就是这样一个虚拟出来的“代表”,那些排在一起的小组件需要它。

使用示例

基本用法

frame .f -bg lightyellow
labelframe .fl -text "Label Frame"

pack .f -side top -fill both -expand 1
pack .fl -side bottom -fill both -expand 1

wm geometry . 480x360

frame screenshot