{{tag>pygtk widget}}
====== Widgets ======
Présentation sommaire de widgets usuels.
===== Button =====
Il existe plusieurs types de boutons. Un bouton basique a un simple label définit lors de l'instanciation ou via l'appel de la méthode set_label().
bouton1= gtk.Button("Valider")
box.pack_end(bouton1, expand=False)
bouton1.show()
Un bouton émet les signaux:
^ pressed | Bouton souris enfoncé au dessus du widget |
^ released | Bouton souris relâché |
^ clicked | Bouton de la souris appuyé et relâché au dessus du widget. |
^ enter | Le curseur souris entre dans la zone occupée par le bouton |
^ leave | Le curseur souris quitte la zone occupée par le bouton |
w= gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_border_width(50)
bouton= gtk.Button("Teste moi")
w.add(bouton)
bouton.connect("clicked", lambda w: printf("clic"))
bouton.connect("pressed", lambda w: printf("souris pressee sur bouton"))
bouton.connect("released", lambda w: printf("souris relachee"))
bouton.connect("enter", lambda w: printf("curseur survole le bouton"))
bouton.connect("leave", lambda w: printf("curseur quitte le bouton"))
def printf(mess=None):
print mess
w.show_all()
Il existe les bouton poussoirs à deux etats (ToggleButton) les case a cocher , les radio-boutons
===== Toolstip ======
Lorsque le curseur de la souris reste positionné au dessus d'un widget, il est possible de faire apparaître un petit texte de description, c'est le tooltip.
tooltips = gtk.Tooltips()
tooltips.set_tip(bouton, "Joli bouton")
tooltips.set_tip(bouton2, "Autre bouton")
===== Progressbar =====
Les barres de progressions sont utilisées pour montrer le statut de certaines opérations
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_border_width(20)
box = gtk.HBox()
bouton = gtk.Button("test")
barre = gtk.ProgressBar()
pg_state=0
def progress_callback(widget, data=None):
global pg_state
global barre
barre.set_fraction(pg_state)
pg_state+=0.1
bouton.connect("clicked", progress_callback)
w.add(box)
box.pack_start(bouton, expand=False)
box.pack_end(barre, expand=True, fill=True)
w.show_all()
Certains widgets ne sont pas associé à des Window et n'emmetent pas d'événements (signaux). Pour capturer leur signaux, il faudra leur associer un objet de type EventBox.