PyGTK : Les fenêtres : Label
Il est possible de créer des labels avec mise en forme du texte.
L'idée ici, est d'utiliser les balises HTML, ou plutôt certaines balises.
Ici, encore, nous faisons appel à Pango.
Nous insérons les balises dans le texte, et Pango gère le formatage du texte.
Quelques balises express de mise en forme directe du texte :
<b> Texte en gras
<i> Texte en italique
<u> Texte souligné
<sub> Texte en indice
<sup> Texte en exposant
<small> Diminue la taille du texte
<big> Augmente la taille du texte
La balise utilisée pour mettre le texte en forme le texte est la balise
<span>...</span>
Cette balise dispose d'attributs permettant un champ d'action assez conséquent
Les attributs :
font-family police à utiliser (défaut : sans-serif)
size taille du texte en points (défaut : 10)
style normal, oblique ou italic
font-desc permet de combiner les paramètres précédents en un seul
weight épaisseur des lettres : ultralight, light, normal, bold, ultrabold, heavy, ou une valeur numérique
foreground couleur du texte (valeur héxadécimale de la forme : #xxxxxx)
background couleur du fond (valeur héxadécimale de la forme : #xxxxxx)
underline Souligner le texte
lang pour indiquer la langue
rise pour déplacer le texte verticalement
Vous allez me dire ok, mais comment met-on tout cela en oeuvre
La méthode utilisée :
set_markup("<balises>....texte...</balises>")
Rien ne vaut un exemple
Code :
#!/usr/bin/env python
# -*- Encoding: Latin-1 -*-
import pygtk
pygtk.require('2.0')
import gtk
def fenetre():
fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
fenetre.set_default_size(400, 200)
fenetre.set_title("Ma premiere fenetre")
label = gtk.Label(u"Voici le premier label de ma fenêtre \nje dirais même mieux, de ma première fenêtre \nde la première fenêtre de poseidon627")
label.set_markup("<span font_desc=\"Courier New 14\" foreground=\"red\"><b>Courier New 14 Gras</b></span>")
fenetre.add(label)
fenetre.show_all()
gtk.main()
if __name__ == '__main__':
fenetre()
Résultat :
Dans mon exemple, j'utilise la police "Courier New", de taille "14", de couleur "rouge", et je mets le tout en gras à l'aide de la balise <b>