PyGTK - ButtonBox-Klasse

Die ButtonBox-Klasse in der gtk-API dient als Basisklasse für Container, in der mehrere Schaltflächen horizontal oder vertikal gespeichert werden können. Zwei Unterklassen HButtonBox und VButtonBox werden von der ButtonBox-Klasse abgeleitet, die selbst eine Unterklasse der Klasse gtk.Box ist.

Ein Schaltflächenfeld wird verwendet, um ein einheitliches Layout der Schaltflächen in einer Anwendung bereitzustellen. Es bietet ein Standardlayout und einen Standardabstandswert, die für alle Widgets gültig sind.

Das set_spacing() Mit der Methode der Klasse gtk.Box kann der Standardabstand zwischen den Schaltflächen im Schaltflächenfeld geändert werden.

Das Standardlayout der Schaltflächen kann durch geändert werden set_default()Methode. Die möglichen Werte des Tastenlayouts sind -

  • gtk.BUTTONBOX_SPREAD

  • gtk.BUTTONBOX_EDGE

  • gtk.BUTTONBOX_START

  • gtk.BUTTONBOX_END.

Beispiel

Im folgenden Beispiel enthält ein VBox-Objekt im Fenster der obersten Ebene intern ein VButtonBox-Objekt und ein HButtonBox-Objekt, die jeweils zwei vertikal bzw. horizontal angeordnete Schaltflächen enthalten.

Beachten Sie den Code -

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

Der obige Code generiert die folgende Ausgabe: