Pygtk 简明教程

PyGTK - ButtonBox Class

gtk API 中的 ButtonBox 类用作容器的基类,以水平或垂直放置多个按钮。两个子类 HButtonBox 和 VButtonBox 是从 ButtonBox 类派生的,ButtonBox 类本身是 gtk.Box 类的子类。

一个按钮框用于为整个应用程序中的按钮提供一致的布局。它提供了一个默认布局和一个默认间距值,它们在所有小部件中保持一致。

gtk.Box 类的 set_spacing() 方法可用于更改按钮框中的按钮之间的默认间距。

可以通过 set_default() 方法更改按钮的默认布局。按钮布局的可能值为:

  1. gtk.BUTTONBOX_SPREAD

  2. gtk.BUTTONBOX_EDGE

  3. gtk.BUTTONBOX_START

  4. gtk.BUTTONBOX_END.

Example

在下面的示例中,toplevel 窗口内的 VBox 对象内部分别包含一个 VButtonBox 对象和一个 HButtonBox 对象,每个对象都包含两个按钮,分别垂直和水平排列。

观察代码 −

import gtk

class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()

	  self.set_title("Button Box demo")
      self.set_size_request(200,100)
      self.set_position(gtk.WIN_POS_CENTER)
	  vb = gtk.VBox()
      box1 = gtk.VButtonBox()
      btn1 = gtk.Button(stock = gtk.STOCK_OK)
      btn2 = gtk.Button(stock = gtk.STOCK_CANCEL)

      box1.pack_start(btn1, True, True, 0)
      box1.pack_start(btn2, True, True, 0)
      box1.set_border_width(5)

      vb.add(box1)
      box2 = gtk.HButtonBox()
      btn3 = gtk.Button(stock = gtk.STOCK_OK)
      btn4 = gtk.Button(stock = gtk.STOCK_CANCEL)

      ent = gtk.Entry()
      box2.pack_start(btn3, True, True, 0)
      box2.pack_start(btn4, True, True, 0)
      box1.set_border_width(5)

      vb.add(box2)
      self.add(vb)
      self.show_all()

PyApp()
gtk.main()

以上代码会生成以下输出 −

button box demo