Pygtk 简明教程
PyGTK - Alignment Class
该组件在控制其子组件的对齐方式和尺寸方面非常有用。它有四个名为 xalign、yalign、xscale 和 yscale 的属性。scale 属性指定子组件将使用多少空闲空间。对齐属性用于在可用区域中放置子组件。
这四个属性都取 0 到 1.0 之间的浮点数。如果 xscale 和 yscale 属性设置为 0,这意味着组件不吸收任何空闲空间;如果设置为 1,则组件分别横向或纵向吸收最大空闲空间。
如果 xalign 和 yalign 属性设置为 0,则表示在组件的左边或上方将没有空闲空间。如果设置为 1,则表示在组件左边或上方将有最大的空闲空间。
gtk.alignment 类有以下构造函数 -
gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)
其中,
-
xalign - 是子组件左边水平空闲空间的比例。
-
yalign - 是子组件上部垂直空闲空间的比例。
-
xscale - 是子组件吸收的水平空闲空间的比例。
-
yscale - 是子组件吸收的垂直空闲空间的比例。
Example
以下代码演示了 gtk.alignment 小组件的使用。主窗口中的一个 VBox 在其中放置了一个上部的 VBox 和下部的 HBox。在上的垂直框中,标签和小组件 Entry 被放置,以至于在左侧 50% 的空间被保持空闲并且超过 25% 被占据,方法是向 yalign 属性分配 0.5 xalign 和 0.25。
在下面的 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()
上述代码生成以下输出 -