Le canvas est le widget offrant le plus de fonctionnalités.
Il permet d'afficher des points, des lignes (pouvant être des flèches),
des ovales, arcs, rectangles, polygones, images, du texte ainsi que n'importe
quel autre widget (mis à part des fenêtre toplevel).
Comme les éléments de texte, chaque élément
créé peut être taggé, mais l'un des atouts
principaux des canvas est que chaque élément, lors
de sa création, se voit assigner un indice. En conservant l'indice
des éléments intéressants, on pourra modifier très
simplement l'allure des éléments dessinés qui deviennent
ainsi des objets de canvas. Il est à noter que les coordonnées
passées au canvas sont des réels.
Exemple d'utilisation de canvas:
|
Options les plus utilisées pour les canvas |
|
| -height h | Le canvas aura une hauteur de h pixels |
| -width w | Le canvas aura une largeur de w pixels |
|
Commandes les plus utilisées sur les canvas |
|
| cget option | Renvoie la valeur de l'option spécifiée du canvas |
| configure ?options? | Change les options spécifiées du canvas |
| coords TagOuId ?x0 y0? | Si x0 et y0 ne sont pas spécifiés, renvoie les coordonnées de l'objet spécifié par son identificateur (renvoyé par canvas create lors de sa création) ou du premier objet taggé par le tag. S'ils sont spécifiés, modifie les coordonnées de l'objet spécifié |
| create type x y ?x y? ?options? | Crée en x,y un objet du type spécifié (voir types d'objets de canvas) avec les options spécifiées. Cet objet pourra cacher les objets créés avant lui si ils partagent des points: il se trouve devant eux. On pourra changer cela en utilisant les commandes lower et raise. Renvoie l'identificateur de l'objet créé |
| delete TagOuId | Supprime l'objet ou les objets désignés par le tag ou l'indentificateur TagOuId |
| itemcget TagOuId option | Retourne la valeur de l'option spécifiée pour l'objet dont l'identificateur est spécifié ou bien du premier objet taggé par le tag si TagOuId est un tag |
| itemconfigure TagOuId ?options? | Modifie la valeur des options spécifiées pour l'objet dont l'identificateur est spécifié ou bien du premier objet taggé par le tag si TagOuId est un tag |
| lower TagOuId ?TagsOuIds? | L'objet spécifié par l'identificateur TagOuId ou bien la liste des objets taggés par TagOuId si celui-ci est un tag est placé derrière les objets spécifiés par TagsOuIds |
| move TagOuId dx dy | Bouge l'objet (ou les objets si TagOuId est un tag) de dx,dy pixels |
| raise TagOuId ?TagsOuIds? | L'objet spécifié par l'identificateur TagOuId ou bien la liste des objets taggés par TagOuId si celui-ci est un tag est placé devant les objets spécifiés par TagsOuIds |
| scale TagOuId x0 y0 xscale yscale | Chaque point M=(x,y) dans le repère de centre (x0,y0)
composant les objets spécifiés par TagOuId se retrouve
en M'=(xscale x x, yscale x y). Dans le cas où (x0,y0)=(0,0),
c'est un zoom de xscale en x, et de yscale en y.
|
|
Types d'objet que l'on peut créer dans un canvas |
|
| create arc x1 y1 x2 y2 ?options? | Un arc est défini d'abord par un rectangle pouvant le contenir, donné par deux de ses coins opposés: (x1,y1) et (x2,y2). La taille angulaire, par défaut 360 pour une ellipse, est donnée par les options -extent degrés où degrés donne la taille de la partie visible de l'ellipse et -start degrés où degrés donne le point de départ de l'arc. Nous aurons affaire à un fromage si on utilise l'option -fill couleur. Le trait du bord aura la couleur spécifiée par -outline couleur et l'épaisseur donnée par -width largeur. L'objet ainsi créé peut être taggé avec l'option -tag ListeDeTags. |
| create image x y ?options? | Place une image donnée par -image NomImage aux coordonnées (x,y). Il faut utiliser l'option -anchor position pour préciser si (x,y) doit être le milieu de l'image (position = center) ou un des milieux des cotés de l'image (position = n, s, e, w pour nord, sud, est, ouest) ou bien l'un des coins de l'image (position = nw , ne, sw, se pour nord-ouest, nord-est, sud-ouest, sud-est). L'objet ainsi créé peut être taggé avec l'option -tag ListeDeTags. |
| create line x1 y1 ... xn yn ?options? | Crée une ligne passant par les points de coordonnées (xi,yi). Son épaisseur est donnée par -width épaisseur, et sa couleur par -fill couleur. Elle peut être simple (-arrow none), posséder une flèche à la fin (-arrow last) ou au début (-arrow first) ou aux deux extrémités (-arrow both). Elle peut être dessinée en courbe de Bézier avec l'option -smooth 1 avec un arrondi prenant en compte nb points pour -splinesteps nb. L'objet ainsi créé peut être taggé avec l'option -tag ListeDeTags. |
| create oval x1 y1 x2 y2 ?options? | Crée un ovale contenu dans le rectangle donné par les coordonnées (x1,y1) et (x2,y2) de deux de ses coins opposés. Sa couleur de remplissage est donnée par -fill couleur et la couleur de son bord est donnée par -outline couleur. L'épaisseur de son bord est donnée par -width épaisseur. L'objet ainsi créé peut être taggé avec l'option -tag ListeDeTags. |
| create polygon x1 y1 ... xn yn ?options? | Crée un polygone dont les sommets sont les points de coordonnées (xi,yi). Sa couleur est donnée par -fill couleur, l'épaisseur de son bord est donnée par -width épaisseur, et sa couleur par -outline couleur. Il peut être dessiné en courbe de Bézier avec l'option -smooth 1 avec un arrondi prenant en compte nb points pour -splinesteps nb. L'objet ainsi créé peut être taggé avec l'option -tag ListeDeTags. |
| create rectangle x1 y1 x2 y2 ?options? | Crée un rectangle ayant pour coins opposés (x1,y1) et (x2,y2) de couleur donnée par -fill couleur, et dont le bord a une épaisseur donnée par -width épaisseur et une couleur donnée par -outline couleur. L'objet ainsi créé peut être taggé avec l'option -tag ListeDeTags. |
| create text x y ?options? | Crée du texte dont la position relative à (x,y) est donnée par -anchor position: pour préciser si (x,y) doit être le milieu du texte (position = center) ou un des milieux des cotés du texte (position = n, s, e, w pour nord, sud, est, ouest) ou bien l'un des coins du texte (position = nw , ne, sw, se pour nord-ouest, nord-est, sud-ouest, sud-est). La couleur des caractères est donnée par -fill couleur, leur police par -font police. Le texte peut être justifié par -justify justification et être coupé au bout de nb caractères par -width nb. Le texte affiché est donné par -text texte. L'objet ainsi créé peut être taggé avec l'option -tag ListeDeTags. |
| Create window x y ?options? | Place un widget existant donné par -window
widget dans le canvas. Sa position relative à (x,y)
est donnée par -anchor position: pour préciser
si (x,y) doit être le milieu du widget (position
= center) ou un des milieux des cotés du widget
(position = n, s, e, w
pour nord, sud, est, ouest) ou bien l'un des coins du widget (position
= nw , ne, sw, se
pour nord-ouest, nord-est, sud-ouest, sud-est). On peut spécifier
sa hauteur en pixels ainsi que sa largeur par -height pixels
et -width pixels. L'objet ainsi créé peut être
taggé avec l'option -tag ListeDeTags.
|