对齐类(Alignment Class)
优质
小牛编辑
127浏览
2023-12-01
此小部件证明在控制其子窗口小部件的对齐和大小方面很有用。 它有四个属性叫做xalign,yalign,xscale和yscale。 缩放属性指定子窗口小部件将使用多少可用空间。 对齐属性用于将子窗口小部件放置在可用区域内。
所有四个属性都占用0到1.0之间的浮点值。 如果xscale和yscale属性设置为0,则表示widget不吸收任何可用空间,如果设置为1,则widget分别在水平或垂直方向吸收最大可用空间。
如果设置为0,则xalign和yalign属性表示左侧或上方小部件没有可用空间。 如果设置为1,则窗口小部件左侧或上方将有最大可用空间。
gtk.alignment类具有以下构造函数 -
gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)
Where,
xalign - 是子窗口小部件左侧的水平可用空间的分数。
yalign - 是子窗口小部件上方的垂直自由空间的分数。
xscale - 是子窗口小部件吸收的水平可用空间的分数。
yscale - 是子窗口小部件吸收的垂直自由空间的分数。
例子 (Example)
以下代码演示了gtk.alignment小部件的用法。 顶层窗口中的Vbox有一个上部Vbox和下部Hbox。 在上部垂直框中,放置一个标签和一个Entry小部件,使得向左,50%的空间保持空闲,并且通过将0.5 xalign和0.25分配给yalign属性来占用超过25%的空间。
在较低的HBox中,所有可用空间都在左侧。 这是通过将1分配给xalign属性来实现的。 因此,水平框中的两个按钮显示为右对齐。
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()
上面的代码产生以下输出 -