Association du Grand Avignon des utilisateurs de Linux / *BSD, et de logiciels libres.

Découverte du widget GtkEntry avec Python

Dans ce billet nous allons découvrir le widget, GtkEntry.

Cet élément graphique permet à un utilisateur de rentrer du texte (qui pourra, par la suite être traité).

Notre premier exemple est très simple. Il s'agit d'afficher dans une « fenêtre mère » (GtkWindow) un champ, dans lequel on peut y écrire (Cf. entry-01.py).

Si l'on valide en pressant la touche Entrée, le texte s'affiche dans la console.

Exemple 01 GtkEntry

Pour l'exécuter, dans une console tapez simplement

olivier@chouffe:~ $ python entry-01.py

Dans l'exemple suivant, nous allons rajouté une nouvelle fonctionnalité, à savoir, permettre la possibilité de supprimer du texte précédemment entré.

Pour cela, on va utilisé la propriété secondary-icon-stock (affiche une icône) à laquelle on connecte un évènement icon-press (Cf. entry-02.py).

Exemple 02 GtkEntry

Lorsque l'on clique sur l'icône située à gauche, le contenu du champ est supprimé.

Exemple 02 GtkEntry vide

Dans l'exemple suivant, nous allons rajouté un bouton (GtkButton) pour fermer la fenêtre. Il sera associé à l'évènement clicked (Cf. entry-03.py).

Exemple 03 GtkEntry avec GtkButton

Dans ce quatrième exemple, nous allons rajouter un widget (GtkLabel) devant le formulaire (Cf. entry-04.py).

Exemple 04 GtkEntry avec GtkButton et GtkLabel

Dans notre exemple le contenut du label est aligné à gauche, mais on peut en choisir un autre parmi la liste :

  • Gtk.Justification.LEFT
  • Gtk.Justification.RIGHT
  • Gtk.Justification.CENTER
  • Gtk.Justification.FILL

En plus de jouer sur l'alignement du text, on peut également lui appliquer un style. Il faut pour cela utiliser la bibliothèque Pango (Cf. entry-04_b.py).

Exemple 04 GtkEntry avec GtkButton, GtkLabel et Pango markup

Dans le dernier exemple, nous allons rajouter une info-bulle (GtkTooltip) au survole du pointeur de la souris dans le champ (GtkEntry) quand il n'y a aucun texte (Cf. entry-05.py).

Exemple 05 GtkEntry avec GtkTooltip