📜  PyGTK-ButtonBox类

📅  最后修改于: 2020-11-08 07:49:09             🧑  作者: Mango


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示范