Présentation
Les étiquettes (gtk.Label()) permettent d'afficher du texte. Nous allons commencer par voir comment en créer une et y afficher du texte. Ensuite, nous verrons comment modifier les attributs du texte (le mettre en gras, par exemple)
Construction
Créer un label est chose toute simple:
Code : Python1 | label = gtk.Label("texte")
|
Voyons maintenant un exemple dans lequel vous apprendrez comment modifier les attributs du texte:
Code : Python 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | # -*- coding:Utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
fenetre.set_title("Les étiquettes")
fenetre.set_position(gtk.WIN_POS_CENTER)
fenetre.connect("destroy", gtk.main_quit)
etiquette = gtk.Label() #Création d'une étiquette
etiquette.set_text("<b>Gras</b>\n<i>Italique</i>\n<u>Souligné</u>\n<s>Barré</s>\n<sub>indice</sub>\n \
<big>Grand</big>\nNormal\n<small>Petit</small>\n<tt>Télétype</tt>\n<span font-family=\"arial\">Arial</span>\n \
<span font-family=\"times\">Times</span>\n<span font-family=\"courrier\">Courrier</span>\n \
<span size=\"xx-large\">Très très grand</span>\n<span foreground=\"red\">Rouge</span>\n \
<span background=\"yellow\">Fond jaune</span>") #Changement du texte de l'étiquette
etiquette.set_justify(gtk.JUSTIFY_CENTER) #Change la position du texte. Choix posibles (gtk.JUSTIFY_LEFT (défaut), gtk.JUSTIFY_RIGHT, gtk.JUSTIFY_CENTER, gtk.JUSTIFY_FILL)
etiquette.set_use_markup(True) #Utiliser la mise en forme
fenetre.add(etiquette)
fenetre.show_all()
gtk.main()
|
Le résultat est le suivant:
Regardons ce code pas à pas.
Premièrement, on importe les modules et on crée une fenêtre ; je ne reviens pas là-dessus.
Ensuite, nous créons l'étiquette.
Puis, nous changeons le texte de cette étiquette avec
set_text :
Code : Python1
2
3
4
5 | etiquette.set_text("<b>Gras</b>\n<i>Italique</i>\n<u>Souligné</u>\n<s>Barré</s>\n<sub>indice</sub>\n \
<big>Grand</big>\nNormal\n<small>Petit</small>\n<tt>Télétype</tt>\n<span font-family=\"arial\">Arial</span>\n \
<span font-family=\"times\">Times</span>\n<span font-family=\"courrier\">Courrier</span>\n \
<span size=\"xx-large\">Très très grand</span>\n<span foreground=\"red\">Rouge</span>\n \
<span background=\"yellow\">Fond jaune</span>") #Changement du texte de l'étiquette
|
Hé ! Je n'arrive pas à lire ce qu'il y est écrit ! Pourquoi ...?
C'est de cette façon qu'il est possible de mettre en forme le texte ; c'est à la manière du xHTML (ceux que le connaissent ne se sentiront pas dépaysagés

)
Je vais vous parler de ce "code" après avoir parler du programme en entier.
Ensuite, il y a:
Code : Python1 | etiquette.set_justify(gtk.JUSTIFY_CENTER)
|
Ceci permet de centré le texte: les choix possibles sont gtk.JUSTIFY_LEFT (par défaut, alligne à gauche), gtk.JUSTIFY_RIGHT (alligne à droite), gtk.JUSTIFY_CENTER (centré), gtk.JUSTIFY_FILL (ne fonctionne pas tout le temps, remplir toute la ligne)
Puis, on utilise une méthode qui permet d'utiliser la mise en forme:
Code : Python1 | etiquette.set_use_markup(True)
|
Enlever cette ligne et vous verrez la différence
The Pango Markup Language
Le Pango Markup Language (ou en français, le langage de balisage Pango) permet de modifier les attributs du texte.
Pour cela, il faut utiliser ce qu'on appelle des balises.
Une balise ressemble à ceci: <balise>
On doit l'ouvrir (<balise>) et la fermer (</balise>, remarquer le / qu'on ajoute pour la fermer).
Tout ce qui est compris entre une balise ouvrante et une balise fermante sera modifier par celles-ci.
Regardons plus en détail le texte du label. La première ligne est :
<b>Gras</b>
Ce qui est compris entre <b> et </b> sera en gras.
Ensuite, on a :
<i>Italique</i>
Ce qui est compris entre <i> et </i> sera en italique.
Plus loin, on voit :
<span font-family=\"courrier\">Courrier</span>
Cette balise est un peu étrange, il a quelque chose en plus, vous ne trouvez pas ?
La balise <span> accepte ce qu'on appelle des attributs. Les attributs sont des caractéristiques de la balise. Dans l'exemple plus haut, l'attribut est font-family (police d'écriture du texte). font-family=\"courrier\" signifie que je veux que l'attribut font-family soit affecté de "courrier" (c'est une police d'écriture).
Hé ! Pourquoi as-tu mis des backslash (\) ?
Comme les limites du texte sont définies par des guillemets ("), il ne faudrait pas que celles dans le texte soient prises en compte par l'interpréteur. Pour qu'elles ne soient pas prises en comte, je dois les prédéder d'un backslash (\). Si je ne les aurais pas mis, il y aurait eu une erreur.
Et les backslash à la fin des lignes, qu'est-ce qu'ils font là ?
J'ai inséré des backslash à la fin des lignes pour limiter leur grandeur. Enlever-les et vous verrez que votre éditeur de texte avancé (si vous en avez un) ne colorera que la première ligne, donc le reste ne ferra pas partie du texte.
Je vais vous faire un petit tableau de tout ce qu'on peut faire.
| Balises | Descriptions |
|---|
| <b>Gras</b> |
"Gras" sera en ... gras ! |
| <i>Italique</i> |
"Italique" sera en italique |
| <u>Souligné</u> |
"Souligné" sera souligné |
| <s>Barré</s> |
"Barré" sera barré |
| <sub></sub> |
Met le texte en indice |
| <sup></sup> |
Met le texte en exposant |
| <big></big> |
Met le texte plus gros |
| <small></small> |
Met le texte plus petit |
| <span font-family=""></span> |
Change la police d'écriture |
| <span size=""></span> |
Change la taille du texte. On peut utiliser 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large' (de très très petit à très très grand) |
| <span foreground=""></span> |
Changer la couleur du texte. Vous pouvez utiliser certaines couleurs en indiquant le nom en anglais (par exemple : red, green, blue), ou bien utiliser le hexadécimal. |
| <span background=""></span> |
Changer la couleur d'arrière-plan du texte. Même remarque pour les couleurs |
Vous savez maintenant comment afficher du texte et le mettre en forme. Nous n'avons pas tout vu, mais vous pouvez aller voir dans la documentation à
cette page. Notez qu'il est possible de mettre plus d'un attribut dans les balises <span>.
Comment faire avec le Concepteur d'Interface Glade ?
Je vais vous expliquer comment créer des étiquettes pouvant utiliser ces balises avec Glade.
Après avoir créer une étiquette, sélectionner-la et aller à l'onglet
Général.
Vous devez écrire votre texte dans la zone de texte suivant le mot
Étiquette :.
Et pour que vous puissiez utiliser les balises, cochez la case précédant
Utiliser des balises :.