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: