PyGTK - ButtonBox 类

  • 简述

    gtk API 中的 ButtonBox 类用作容器的基类,以水平或垂直地容纳多个按钮。 HButtonBox 和 VButtonBox 两个子类是从 ButtonBox 类派生的,ButtonBox 类本身就是 gtk.Box 类的子类。
    按钮框用于在整个应用程序中提供一致的按钮布局。它提供了一个默认布局和一个默认间距值,这些值在所有小部件中都是持久的。
    gtk.Box类的set_spacing()方法可以用来改变按钮框中按钮的默认间距。
    可以通过 set_default() 方法更改按钮的默认布局。按钮布局的可能值是 -
    • gtk.BUTTONBOX_SPREAD
    • gtk.BUTTONBOX_EDGE
    • gtk.BUTTONBOX_START
    • gtk.BUTTONBOX_END。
  • 示例

    在下面的例子中,顶层窗口内的一个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()
    
    上面的代码生成以下输出 -
    ButtonBox 演示