LE LABEL

Le label ajoute su texte explicatif à votre interface pour la rendre plus lisible.

Le label en Tk peut combiner image et texte sous diverses orientations (droite, gauche, bas, haut)

Voici des tutoriels sur le label:

Cration d'un Label et insertion d'une image

Dans cet exemple nous allons afficher un texte dans un label.

Ce qu'il est très important de noter, c'est que le label peut aussi afficher une image dans n'importe quelle direction (au dessu, au dessous, à gauche, à droite du texte) Pour ce faire il ne faut pas oublier l'option COMPOUND. (voir cet exemple

Voici le code de l'application que nous allons commenter après :

frame .fr
pack .fr
image create photo img -file "ecrou.jpg"
label .fr.lbl -image img
pack .fr.lbl

wm title . label
wm geometry . +300+300

Tout d'abord créons une image par la commande IMAGE CREATE. la photo sera stockée dans la variable IMG

Ensuite créons un label dont l'image sera IMG

Comme je vous le disais, pour afficher un texte et une image en même temps, voici le code qu'il faut écrire

image create photo img -file "stock.png"
label .fr.lbl -image img -text "c'est mon écrou!" -compound top

...et voici le résultat :

compound peut prendre 4 valeurs : TOP, BOTTOM, LEFT ou RIGHT.

 

REDIMENSIONNER UNE IMAGE A LA VOLEE

J'ai cherché un moment une procédure me permettant de redimensionner à la volée une image en l'agrandissant ou la réduisant mais je n'ai pas trouvé ce que je cherchais.

J'ai donc réalisé cette procédure moi même.

1) Creation de la procédure en lui passant les paramètres.

Je voudrais recevoir de ma nouvelle procédure nommée resizeIMG une image redimensionnée.

Je souhaite aussi lors de son exécution lui passer :

  • L'image à redimensionner ici myimg
  • La taille à redimensionner en X en pixels ici wi
  • La taille à redimensionner en Y en pixels ici he

Pour des raisons de simplification, il est compliqué de connaître par le code en tcl tk la taille d'une image. Nous partirons du postulat que nous redimensionnons une image qui a des dimensions de 128x128 au format PNG.

Voici le code de la procédure que nous allons commenter :

 proc resizeIMG { myimg wi he } {
	 set factor [expr 128 / $wi]
	set Imodified [image create photo -width $wi -height $he]
    $Imodified copy $myimg -to 0 0 $wi $he -subsample $factor
     return $Imodified
 }

Commentons ce code :

  • Définissons une variable factor qui sera le facteur de zoom de notre image.
  • Définisson une variable Imodified qui sera une image aux nouvelles dimensions.

La ligne la plus intéressante est la suivante :

$Imodified copy $myimg -to 0 0 $wi $he -subsample $factor

difference entre label et ttk::label

Je me suis souvent pose la question. il existe pour coder un label le choix de deux variantes :

  1. le simple label
  2. le label nomme ttk::label

Quel est la difference ?

1) Le label


Type : C'est un widget de base de Tk.
Apparence : Les widgets label de Tk utilisent le style par défaut du système d'exploitation, ce qui peut varier d'un système à l'autre.
Fonctionnalités : Il offre des fonctionnalités de base pour afficher du texte ou des images, mais il n'a pas de styles avancés ou de thèmes.

2) Le ttk::label


Type : C'est un widget de la bibliothèque Ttk (Themed Tk).
Apparence : Les widgets ttk::label sont conçus pour avoir une apparence plus moderne et cohérente, en utilisant des thèmes qui peuvent être personnalisés. Cela permet d'obtenir une interface utilisateur plus esthétique et uniforme sur différentes plateformes.
Fonctionnalités : En plus des fonctionnalités de base, ttk::label prend en charge des options de style avancées, ce qui permet de personnaliser l'apparence du widget de manière plus détaillée.

Conclusion


En résumé, si vous développez une application avec Tcl/Tk et que vous souhaitez une interface utilisateur moderne et personnalisable, il est recommandé d'utiliser ttk::label et d'autres widgets Ttk. Si vous avez besoin de fonctionnalités de base et que l'apparence n'est pas une priorité, vous pouvez utiliser label.

 

 

 

.