Présentation sommaire de widgets usuels.
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
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")
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.