pyGTK利用部件容器进行窗口的布局设计, 部件容器并不可见,其作用是用来排列多个部件对象,比如多个按钮。
首先我们有两种Box部件容器: 利用gtk.HBox()创建的水平Box容器;和利用gtk.VBox()创建的垂直Box容器。
对于水平Box容器中部件对象的排列方式,pack_start()决定排列按照从左到右的次序;而pack_end()决定为从右到左的排列次序。
对于垂直Box容器中部件对象的排列方式,pack_start()决定排列按照从上到下的次序;而pack_end()决定为从下到上的排列次序。
关于pack_start()方法的参数解释:
box.pack_start(child, expand, fill, padding)
box: 定义的Box容器对象;
child: 待排列的部件对象;
expand: 控制是否展开部件,以便填充box容器的额外区域时的box容器的大小扩展到分配的尺寸。expand=False, 则box容器的尺寸缩小到刚好容纳其中的部件对象。
fill: fill=True把额外的区域分配给对象; fill=False,以部件对象周围的额外填充的形式。只在expand=True的情况下生效。
区别spacing和padding:
padding是加在部件对象的一边的,用在部件排列中。
spacing用于生成box时,加在部件对象之间。
hbox = gtk.HBox(homogeneous=False, spacing=0)
示例如下:
hbox1 = gtk.HBox(True, 20)
hbox1.pack_start(btn1, True, True, 0)
hbox1.pack_start(btn2, True, True, 0)
hbox1.pack_start(btn3, True, True, 0)
hbox1 = gtk.HBox(True, 20)
hbox1.pack_start(btn1, True, True, 20)
hbox1.pack_start(btn2, True, True, 20)
hbox1.pack_start(btn3, True, True, 20)