C'est génial d'afficher du texte, mais j'aimerais le centrer et le mettre en gras. Tu n'a pas une fonction qui pourrait faire ça?
GTK, n'est pas un traitement de texte...

, mais ses créateurs nous ont prévu ce genre de fonction.
L'alignement
Le texte est pour le moment aligné à gauche, mais moi je préfèrerais qu'il soit centré, pas vous?
Pour modifier l'alignement de notre label, la fonction
gtk_label_set_justify () est tout à fait appropriée, tout simplement par ce qu'elle ne sait faire que ça.
Code : C1 | void gtk_label_set_justify (GtkLabel *label, GtkJustification jtype);
|
Les paramètres :
- label : Le nom de notre label que l'on veut modifier
- jtype : Le type d'alignement que l'on veut appliquer à notre label. Il peut prendre une de ces quatre valeurs:
- GTK_JUSTIFY_LEFT -> Aligne le texte à gauche (par défaut).
- GTK_JUSTIFY_CENTER -> Aligne le texte au centre.
- GTK_JUSTIFY_RIGHT -> Aligne le texte à droite.
- GTK_JUSTIFY_FILL -> Aligne le texte à droite et à gauche à la fois. Le texte est alors justifié.
Le formatage du texte avec les balises
Pour mettre un texte en forme, Pango utilise des balises (comme pour le Zcode).
Avec les balises "simples" ou "courtes"
Les balises ci-dessous vous permettent de personnaliser un texte simplement.
- <b> -> Mets le texte en gras
- <i> -> Mets le texte en italique
- <u> -> Souligne le texte
- <s> -> Barre le texte
- <sub> -> Mets le texte en indice
- <big> -> Rend la police relativement plus grande (+1)
- <small> -> Rend la police relativement plus petite (-1)
- <tt> -> Met le texte en télétype
Avec Span
La balise <span class="bleugris">span</span> est différente des dernières. Elle a des attributs qui lui permettent de modifier la police, la taille, la couleur des caractères.
Elle s'utilise comme ceci :
<span attribut1="valeur" attribut2="valeur">...</span>
- font_family -> Nom de la police de caractère
- face -> C'est un autre attribut qui définit la police
- size -> C'est la taille de la police. On peut aussi utiliser 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large' ou une valeur numérique.
- style -> Définit le style des caractères : 'normal', 'oblique' ou 'italic'
- weight -> Définit le ton du gras du caractère : 'ultralight', 'light', 'normal', 'bold', 'ultrabold', 'heavy' ou une valeur numérique.
- variant -> Met le texte en petites majuscules (smallcaps) ou en normal (normal, valeur par défaut).
- stretch -> définit l'espacement des lettres: 'ultracondensed', 'extracondensed', 'condensed', 'semicondensed', 'normal', 'semiexpanded', 'expanded', 'extraexpanded' ou 'ultraexpanded'.
- foreground -> Définit la couleur du texte en valeur hexadécimale
- background -> Définit la couleur du fond texte en valeur hexadécimale
- underline -> Définit le soulignement du texte: 'single', 'double', 'low' ou 'none'.
- underline_color -> Définit la couleur du soulignement en valeur hexadécimale
- rise -> Définit l'élévation du texte (en indice ou exposant) en valeur décimal (les valeurs négatives sont possibles, pour mettre notamment notre texte en indice)
- strikethrough -> Pour barrer son texte. La valeur doit être soit TRUE ou FALSE
- strikethrough_color -> Définit la couleur de la ligne qui barre le texte en valeur hexadécimale
- fallback -> Si votre caractère n'est pas disponible dans le police choisie, alors une police qui contient ce caractère sera choisi. Elle est activée par défaut.
- lang -> Définit la langue du texte
Maintenant, il y a une chose primordiale à ne pas oublier: il faut dire que l'on utilise les balises de pango.
Pour cela nous avons deux choix, soit on intègre ces balises directement dans notre fonction de convertion, soit nous utiliserons une fonction spécifique.
On intègre nos balises à notre fonction de convertion
Cette fonction très pratique permet de convertir à la fois le texte et les balises. Il vous suffit d'écrire vos balises avec votre texte dans
g_locale_to_utf8 puis de rajouter la fonction ci-dessous après la convertion :
Code : C1 | void gtk_label_set_use_markup (GtkLabel *label, gboolean setting);
|
Les paramètres :
- label : Le label à qui on veut appliquer les balises.
- setting : On met TRUE pour que ça marche.
On utilise pas notre fonction de conversion
Si vous n'avez pas de caractères spéciaux à convertir, l'utilisation de cette fonction sera plus adaptée.
Code : C1 | void gtk_label_set_markup (GtkLabel *label, const gchar *str);
|
Les paramètres :
- label : Le label à qui on veut appliquer les balises.
- str : On met ici le texte avec les balises que l'on souhaite afficher
C'est fini, il ne reste plus qu'à afficher le label.