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 :
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 :
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 :
Quel est la difference ?
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.
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.
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.
.