PyGTK Box类

PyGTK Box类

gtk.Box 类是一个抽象类,定义了一个容器的功能,在矩形区域中放置小部件。gtk.HBox 和 gtk.VBox 小部件是其派生类。

gtk.HBox 中的子小部件水平排列在同一行中。而 gtk.VBox 的子小部件垂直排列在同一列中。

gtk.Box 类使用以下构造函数:

gtk.Box(homogenous = True, spacing = 0)

homogeneous属性默认为True。因此,所有子部件都被给予相等的分配。

gtk.Box使用布局机制来将子部件放置在其中,并参照特定的位置,可以是开始或结束。pack_start()方法从开始到结束放置部件。相反,pack_end()方法将部件从结束位置反向放置。或者,您可以使用与pack_start()类似的add()方法。

以下方法适用于gtk.HBox和gtk.VBox:

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

此方法将 child 添加到盒子中,并参照盒子的开始位置进行布局。

pack_start(child, expand = True, fill = True, padding = 0)

以下是参数 −

  • child − 要添加到盒子中的小部件对象

  • expand − 如果要给child提供额外空间,则设置为True。额外空间在所有的子小部件之间平分。

  • fill − 如果为True,则将额外的空间分配给child。否则,该参数被用作填充。

  • padding − 这是盒子中小部件之间的像素间隔。

gtk_box_pack_end ()

这将child添加到盒子中,并将其相对于盒子末端进行封装。

pack_end (child, expand = True, fill = True, padding = 0)

以下是参数:

  • child −这是要添加的小部件对象。

  • expand −如果child需要在框中获得额外空间,则设置为True。这个额外的空间会被均分给所有的子小部件。

  • fill −如果为True,则额外的空间将分配给child,否则用作填充。

  • padding −这是小部件之间的像素间距。

set_spacing (spacing) 是一个设置小部件间距的函数,以像素为单位。

add (widget) 方法是从gtk.Container类继承而来的。它将widget添加到容器中。这个方法可以代替pack_start()方法。

示例

在下面给出的示例中,顶层窗口包含一个垂直框(gtk.VBox对象box)。它再包含一个VBox对象vb和一个HBox对象hb。在上面的框中,一个标签、一个输入小部件和一个按钮被垂直放置。在下面的框中,另外一组标签、输入小部件和按钮也被垂直放置。

观察以下代码:

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
         self.set_title("Box demo")

      box = gtk.VBox()
      vb = gtk.VBox()
      lbl = gtk.Label("Enter name")

      vb.pack_start(lbl, expand = True, fill = True, padding = 10)
      text = gtk.Entry()

      vb.pack_start(text, expand = True, fill = True, padding = 10)
      btn = gtk.Button(stock = gtk.STOCK_OK)

      vb.pack_start(btn, expand = True, fill = True, padding = 10)
      hb = gtk.HBox()

      lbl1 = gtk.Label("Enter marks")
      hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
      text1 = gtk.Entry()

      hb.pack_start(text1, expand = True, fill = True, padding = 5)
      btn1 = gtk.Button(stock = gtk.STOCK_SAVE)

      hb.pack_start(btn1, expand = True, fill = True, padding = 5)
      box.add(vb)
      box.add(hb)
      self.add(box)
      self.show_all()
PyApp()
gtk.main()

以上代码将产生以下输出−

PyGTK Box类

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程