Table des matières

,

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.