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)

其中,

  1. xalign - 是子组件左边水平空闲空间的比例。

  2. yalign - 是子组件上部垂直空闲空间的比例。

  3. xscale - 是子组件吸收的水平空闲空间的比例。

  4. 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()

上述代码生成以下输出 -

alignment demo