{{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.