PyGTK - Symbolleistenklasse

Die Symbolleistenklasse wird von der Klasse gtk.Container geerbt. Es enthält und verwaltet eine Reihe von Schaltflächen und anderen Widgets. Ein oder mehrere horizontale Schaltflächenstreifen werden normalerweise direkt unter der Menüleiste in einem Fenster der obersten Ebene angezeigt. Die Symbolleiste kann auch in einem abnehmbaren Fenster namens HandleBox abgelegt werden. Standardmäßig sind die Schaltflächen im Widget "gtk.Toolbar" horizontal angeordnet. Die vertikale Symbolleiste kann eingerichtet werden, indem die Ausrichtungseigenschaft auf festgelegt wirdgtk.ORIENTATION_VERTICAL.

Die Symbolleiste kann so konfiguriert werden, dass Schaltflächen mit Symbolen, Text oder beidem angezeigt werden. Die Stilaufzähler sind -

gtk.TOOLBAR_ICONS Diese Schaltflächen zeigen nur Symbole in der Symbolleiste an.
gtk.TOOLBAR_TEXT Diese Schaltflächen zeigen nur Textbeschriftungen in der Symbolleiste an.
gtk.TOOLBAR_BOTH Diese Schaltflächen zeigen Text und Symbole in der Symbolleiste an.
gtk.TOOLBAR_BOTH_HORIZ Diese Schaltflächen zeigen Symbole und Text nebeneinander an und nicht vertikal gestapelt.

Ein Symbolleisten-Widget wird mit dem folgenden Konstruktor eingerichtet:

bar = gtk.Toolbar()

Die Bestandteile der Symbolleiste sind Instanzen des gtk.ToolItem. Die Elemente können ToolButton, RadioToolButton, ToggleToolButton oder SeparatorToolItem sein. Um dem ToolItem-Objekt ein Symbol zuzuweisen, können Bilder mit vordefinierter stock_ID verwendet oder ein benutzerdefiniertes Bild mit der Methode set_image () zugewiesen werden.

Die folgenden Beispiele zeigen, wie verschiedene ToolItems erstellt werden.

ToolButton

newbtn = gtk.ToolButton(gtk.STOCK_NEW)

RadioToolButton

rb1 = gtk.RadioToolButton(None,gtk.STOCK_JUSTIFY_LEFT) 
rb2 = gtk.RadioToolButton(rb1,gtk.STOCK_JUSTIFY_RIGHT)

Beachten Sie, dass mehrere Optionsfelder in derselben Gruppe enthalten sind.

SeparatorToolItem

sep = gtk.SeparatorToolItem()

Diese Elemente werden in die Symbolleiste eingefügt, indem Sie its aufrufen insert Methode.

gtk.Toolbar.insert(item, index)

Zum Beispiel,

bar.insert(new,0)

Sie können dem ToolButton auch eine QuickInfo mit der Methode set_tooltip_text () zuweisen. Zum Beispiel,New Der Tooltip wird dem neuen ToolButton zugewiesen.

newbtn.set_tooltip_text("New")

Beispiel

Der folgende Code zeigt ein Fenster auf oberster Ebene mit einer Symbolleiste, die so eingerichtet ist, dass sie normale Werkzeugelemente, Radioelemente und ein Trennelement enthält.

import gtk

class PyApp(gtk.Window):

   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Toolbar Demo")
      self.set_default_size(250, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      
      toolbar = gtk.Toolbar()
      toolbar.set_style(gtk.TOOLBAR_ICONS)
      toolbar.set_orientation(gtk.ORIENTATION_HORIZONTAL)
      
      newbtn = gtk.ToolButton(gtk.STOCK_NEW)
      newbtn.set_tooltip_text("New")
      openbtn = gtk.ToolButton(gtk.STOCK_OPEN)
      savebtn = gtk.ToolButton(gtk.STOCK_SAVE)
      sep = gtk.SeparatorToolItem()
      
      rb1 = gtk.RadioToolButton(None,gtk.STOCK_JUSTIFY_LEFT)
      53
      rb2 = gtk.RadioToolButton(rb1,gtk.STOCK_JUSTIFY_RIGHT)
      
      prv = gtk.ToggleToolButton(gtk.STOCK_PRINT_PREVIEW)
      quitbtn = gtk.ToolButton(gtk.STOCK_QUIT)
      
      toolbar.insert(newbtn, 0)
      toolbar.insert(openbtn, 1)
      toolbar.insert(savebtn, 2)
      toolbar.insert(sep, 3)
      toolbar.insert(rb1,4)
      toolbar.insert(rb2,5)
      toolbar.insert(prv,6)
      toolbar.insert(quitbtn, 7)
      
      quitbtn.connect("clicked", gtk.main_quit)
      vbox = gtk.VBox(False, 2)
      vbox.pack_start(toolbar, False, False, 0)
      
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
   
   def on_checked(self, widget, data = None):
      state = "Button1 : "+str(self.btn1.get_active())+" 
         Button2 : "+str(self.btn2.get_active())
      self.lbl.set_text(state)
if __name__ == '__main__':
   PyApp()
   gtk.main()

Der obige Code generiert die folgende Ausgabe: