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
.