PyGTK - Classe de barre d'outils
La classe Toolbar est héritée de la classe gtk.Container. Il contient et gère un ensemble de boutons et autres widgets. Une ou plusieurs bandes horizontales de boutons sont normalement visibles juste en dessous de la barre de menus dans une fenêtre de niveau supérieur. La barre d'outils peut également être placée dans une fenêtre détachable appelée HandleBox. Par défaut, les boutons du widget gtk.Toolbar sont disposés horizontalement. La barre d'outils verticale peut être configurée en définissant la propriété d'orientation surgtk.ORIENTATION_VERTICAL.
La barre d'outils peut être configurée pour afficher des boutons avec des icônes, du texte ou les deux. Les énumérateurs de style sont -
gtk.TOOLBAR_ICONS | Ces boutons affichent uniquement des icônes dans la barre d'outils. |
gtk.TOOLBAR_TEXT | Ces boutons affichent uniquement les étiquettes de texte dans la barre d'outils. |
gtk.TOOLBAR_BOTH | Ces boutons affichent du texte et des icônes dans la barre d'outils. |
gtk.TOOLBAR_BOTH_HORIZ | Ces boutons affichent les icônes et le texte côte à côte, plutôt qu'empilés verticalement. |
Un widget Toolbar est configuré à l'aide du constructeur suivant -
bar = gtk.Toolbar()
Les constituants de Toolbar sont des instances de gtk.ToolItem. Les éléments peuvent être ToolButton, RadioToolButton, ToggleToolButton ou SeparatorToolItem. Afin d'attribuer une icône à l'objet ToolItem, des images avec stock_ID prédéfini peuvent être utilisées ou une image personnalisée peut être attribuée par la méthode set_image ().
Les exemples suivants montrent comment construire différents ToolItems -
ToolButton
newbtn = gtk.ToolButton(gtk.STOCK_NEW)
RadioToolButton
rb1 = gtk.RadioToolButton(None,gtk.STOCK_JUSTIFY_LEFT)
rb2 = gtk.RadioToolButton(rb1,gtk.STOCK_JUSTIFY_RIGHT)
Notez que plusieurs boutons radio sont placés dans le même groupe.
SeparatorToolItem
sep = gtk.SeparatorToolItem()
Ces éléments sont placés dans la barre d'outils en appelant son insert méthode.
gtk.Toolbar.insert(item, index)
Par exemple,
bar.insert(new,0)
Vous pouvez également affecter une info-bulle au ToolButton à l'aide de la méthode set_tooltip_text (). Par exemple,New tooltip est assigné au nouveau ToolButton.
newbtn.set_tooltip_text("New")
Exemple
Le code suivant montre une fenêtre de niveau supérieur avec une barre d'outils configurée pour contenir un élément d'outil normal, des éléments radio et un élément de séparation.
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()
Le code ci-dessus générera la sortie suivante -