PyGTK 对齐类
这个小组件被证明在控制其子小组件的对齐和尺寸方面很有用。它有四个属性,叫做xalign, yalign, xscale和yscale。规模属性指定了多少自由空间将被子部件使用。align属性用于将子部件放置在可用区域内。
所有这四个属性都占用了0到1.0之间的浮动值。如果xscale和yscale属性被设置为0,这意味着小部件不吸收任何自由空间,如果设置为1,小部件分别在水平或垂直方向上吸收最大的自由空间。
xalign和yalign属性如果设置为0,意味着在widget的左边或上面将没有自由空间。如果设置为1,将有最大的自由空间在小部件的左边或上面。
gtk.alignment类有以下构造函数
gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)
其中。
- xalign – 是子部件左边的水平自由空间的分数。
-
yalign – 是子部件上面的垂直自由空间的分数。
-
xscale – 是子部件吸收的水平自由空间的分数。
-
yscale – 是子部件吸收的垂直自由空间的分数。
例子
下面的代码演示了gtk.alignment widget的使用。顶层窗口中的一个Vbox有一个上层Vbox和下层Hbox放置在其中。在上层垂直框中,一个标签和一个Entry widget被放置,这样在左边,50%的空间被保持自由,超过25%的空间被分配给0.5 xalign和0.25 yalign属性。
在下部的HBox中,所有可用的自由空间都在左边。这是通过给xalign属性赋值1来实现的。因此,水平框中的两个按钮看起来是右对齐的。
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Alignment demo")
self.set_size_request(400,200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox(False, 5)
vb = gtk.VBox()
hbox = gtk.HBox(True, 3)
valign = gtk.Alignment(0.5,0.25, 0, 0)
lbl = gtk.Label("Name of student")
vb.pack_start(lbl, True, True, 10)
text = gtk.Entry()
vb.pack_start(text, True, True, 10)
valign.add(vb)
vbox.pack_start(valign)
ok = gtk.Button("OK")
ok.set_size_request(70, 30)
close = gtk.Button("Close")
hbox.add(ok)
hbox.add(close)
halign = gtk.Alignment(1, 0, 0, 0)
halign.add(hbox)
vbox.pack_start(halign, False, False, 3)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
PyApp()
gtk.main()
上述代码产生了以下输出 —