Méthodes Canvas

Méthodes des Canevas :

Méthodes de modifications de marques

Remarque

# tag est la marque posée sur l'item marque
# l'item est un objet crée par l'utilisateur
# un arc, un rectangle une image .....
carre=can.create_rectangle(10,50,50,100,fill='blue',tag="UN")
# Exemple: la marque est UN
# le nom de l'item est : carre

A

#----------------------------------------------#
    Canvas.addtag_above(marque,item)

Mettre une nouvelle marque à l’item situé juste au-dessus de celui qui est sélectionné par item dans la liste d’affichage. L’argument marque, donné sous la forme d’une chaîne de caractère, est la marque qu’on souhaite apposer.

#----------------------------------------------#
    Canvas.addtag_all(marque)

Attache la marque donnée à tous les items qui sont présents sur le canevas.

#----------------------------------------------#
    Canvas.addtag_below(marque,item)

Attache la nouvelle marque marque à tous les items situés en-dessous de celui qui est indiqué par l’identifiant numérique ou la marque item. L’argument marque est une chaîne de caractères.

#-----------------------------------------------------#
    Canvas.addtag_closest(marque,x,y,halo=None,start=None)

Ajoute une marque à l’item le plus proche de la position indiquée par les coordonnées (de la fenêtre de vue). Si un ou plusieurs items sont à la même distance, celui qui est le plus haut dans la liste d’affichage (qui recouvre les autres) est sélectionné. Utilisez l’argument halo afin d’augmenter la taille effective du point. Par exemple, une valeur de 5 indique le traitement de tous les objets qui recouvrent le disque de centre (x, y).

Si l’identifiant d’un objet est utilisé pour l’argument start, cette méthode marque l’item qui est le plus haut dans la liste d’affichage tout en étant en dessous de celui qui est ainsi identifié.

#----------------------------------------------#
    Canvas.addtag_enclosed(marque,x1,y1,x2,y2)

Ajoute la marque à tous les items qui sont complètement recouvert par le rectangle dont le coin supérieur gauche est (x1, y1) et le coin inférieur droit est (x2, y2).

#----------------------------------------------#
    Canvas.addtag_overlapping(marque,x1,y1,x2,y2)

Comme la méthode précédente à cela près que les items marqués sont tous ceux qui ont au moins un point commun avec le rectangle.

#----------------------------------------------#
    Canvas.addtag_withtag(marque,item)

Ajoute la marque  marque aux objets identifiés par  item.

#----------------------------------------------#
    Canvas.bbox(item=None)
#----------------------------------------------#
    Canvas.dtag(item,marque)

Supprime la marque  du ou des items sélectionnés par item.

Méthodes de coordonnées

B

#----------------------------------------------#
    Canvas.coords(item)

Retourne un tuple (x1, y1, x2, y2) qui décrit un rectangle qui renferme tous les objets identifiés par item. Si l’argument n’est pas précisé, le rectangle retourné est le plus petit qui contient tous les items présents dans le canevas. Le coin supérieur gauche du rectangle est (x1, y1) et son coin inférieur droit est (x2, y2).

#----------------------------------------------#
    Canvas.coords(item,x0,y,x1,y1,...,xn,yn)

Si vous précisez uniquement l’argument item, elle retourne un tuple contenant les coordonnées du plus bas ou de l’unique item précisé par cet argument. Le nombre des coordonnées dépend du type d’item. Dans la plupart des cas, il est de la forme (x1, y1, x2, y2) décrivant la boîte englobante (bounding box) de l’item. Vous pouvez déplacer un item en précisant ses nouvelles coordonnées.

#----------------------------------------------#
    Canvas.dchars(item,first=0,last=first)

Supprime des caractères du ou des items textuels sélectionnés. Tous les caractères situés entre first et last (inclus) sont supprimés, ces paramètres indiquant une position entière ou la fin du texte via la chaîne “end”.

Méthodes de suppression

Remarque

# le Canvas s'appelle can
can=Canvas(fenetre,width=largeur,height=hauteur,bg='red')
# l'item est un objet crée par l'utilisateur
# un arc, un rectangle une image .....
carre=can.create_rectangle(10,50,50,100,fill='blue',tag="UN")
# Exemple: la marque est UN
# le nom de l'item est : carre
#On le supprime
can.delete(carre)
#On veut tout supprimer sur le Caneves
can.delete(ALL)

C

#----------------------------------------------#
    Canvas.delete(item)

Supprime les items indiqués par item. Il n’y a pas d’erreurs si aucun item ne correspond à item.

Méthodes de recherche

Remarque

# le Canvas s'appelle can
can=Canvas(fenetre,width=largeur,height=hauteur,bg='red')
# l'item est un objet crée par l'utilisateur
# un arc, un rectangle une image .....
carre=can.create_rectangle(10,50,50,100,fill='blue',tag="UN")
# Exemple: la marque est UN
# le nom de l'item est : carre
cercle=can.create_oval(100,150,150,200,fill='blue',tag="DEUX")
#On veut gérer plusieurs items

C

#----------------------------------------------#
    Canvas.find_above(item)

Retourne l’identifiant numérique de l’item situé juste au-dessus de celui qui est sélectionné par  item. S’il y en a plusieurs, on utilise le plus haut dans la liste d’affichage. Si l’item précisé par item est le plus haut, la méthode retourne un tuple vide ().

#----------------------------------------------#
    Canvas.find_all()

Retourne une liste qui contient tous les identifiants numériques de tous les items du canevas, du plus bas au plus haut.

#----------------------------------------------#
    Canvas.find_below(item)

Retourne l’identifiant numérique de l’item situé juste en dessous de celui qui est sélectionné par  item. Si plusieurs items correspondent, on obtient le plus bas dans la liste d’affichage. Si l’item sélectionné par  item est le plus bas, la méthode retourne un tuple vide .

#----------------------------------------------#
Canvas.find_closest(x,y,halo=None,start=None)

Retourne un tuple contenant l’identifiant numérique d’un seul item, celui qui est le plus proche du point (x, y). Si plusieurs items sont sélectionnés, c’est celui qui est le plus haut dans la liste d’affichage. Si aucun item n’est sélectionné, retourne une liste vide. Utiliser l’argument halo afin d’augmenter la taille effective du point. Tout item situé à une distance inférieur à halo de (x,y) le coupe. Si start est renseigné, en utilisant une marque ou un identifiant (la marque sélectionne l’item le plus bas), l’item le plus proche et situé en-dessous de start est choisi.

#----------------------------------------------#
Canvas.find_enclosed(x1,y1,x2,y2)

Retourne la liste des identifiants numériques des items situés entièrement à l’intérieur du rectangle déterminé par (x1, y1) (coin supérieur gauche) et (x2, y2) (coin inférieur droit).

#----------------------------------------------#
Canvas.find_overlapping(x1,y1,x2,y2)

Retourne la liste des identifiants numériques des items qui ont au moins un point commun avec le rectangle x1,y1,x2,y2.

#----------------------------------------------#
    Canvas.find_withtag(item)

Retourne la liste des identifiants numériques des items sélectionnés par item.

#----------------------------------------------#
    Canvas.focus(item=None)

Donne le focus à l’item sélectionné par item. Si plusieurs sont sélectionnés, donne le focus au premier de la liste d’affichage qui permet un curseur d’insertion. Si aucun item ne satisfait cette condition ou si le canevas n’a pas le focus, le focus n’est pas modifié. Si l’argument est omis, l’identifiant de l’item qui a le focus est retourné ou”” si aucun ne l’a.

#----------------------------------------------#
Canvas.gettags(item)

Si item est un identifiant numérique, elle retourne la liste de toutes les marques qui sont associées à cet item. Si c’est une marque, elle retourne la liste de toutes les marques de l’item le plus bas parmi ceux qui sont sélectionnés.

#----------------------------------------------#
Canvas.itemcget(item,option)

Retourne la valeur de l’option de configuration (précisée par une chaîne de caractères) pour l’item sélectionné (ou pour l’item le plus bas si plusieurs sont sélectionnés par item. C’est très similaire à la méthode cget() pour les widgets.

Méthodes de configuration

Remarque

# le Canvas s'appelle can
can=Canvas(fenetre,width=largeur,height=hauteur,bg='red')
# l'item est un objet crée par l'utilisateur
# un arc, un rectangle une image .....
carre=can.create_rectangle(10,50,50,100,fill='blue',tag="UN")
# Exemple: la marque est UN
# le nom de l'item est : carre
can.itemconfigure(carre,fill='red')
#On change la couleur du carre

D

#----------------------------------------------#
    Canvas.itemconfigure( item,option,...)

Si aucune option n’est indiquée, retourne un dictionnaire dont les clés sont les options possibles pour l’item donné par item (ou le plus bas s’il y en a plusieurs). Autrement, modifie les options données sous la forme option=valeur.

Méthodes de déplacement

Remarque

# le Canvas s'appelle can
can=Canvas(fenetre,width=largeur,height=hauteur,bg='red')
# l'item est un objet crée par l'utilisateur
# un arc, un rectangle une image .....
carre=can.create_rectangle(10,50,50,100,fill='blue',tag="UN")
# Exemple: la marque est UN
# le nom de l'item est : carre
dx=10
dy=20
#On déplace le carre de 10 pixels en abscisse
#                    de 20 pixels en ordonnée
can.move(carre,dx,dy)

E

#----------------------------------------------#
Canvas.move(item,dx,dy)

Déplace les items donnés via item en ajoutant dx à leurs coordonnées x et dy à leurs coordonnées y.

Postscript

Représentation

#----------------------------------------------#
Catscript(options,  ...)

Génère une représentation du contenu actuel du canevas sous la forme d’une image PostScript encapsulé. Ses options sont:

#-------------#
colormode
Utilisez “color” pour une image couleur, “gray” pour une image en niveaux de gris, ou “mono” pour une image en noir et blanc.
#-------------#
file
Pour préciser un fichier dans lequel le code PostScript sera écrit. Si non renseigné, le PostScript est retourné sous la forme d’une chaîne de caractère.
#-------------#
height
Hauteur du canevas à prendre en compte. Par défaut, la hauteur visible du canevas.
#-------------#
rotate
Si False, la page est rendue en mode «portrait»; si True, en mode «paysage». x  et y précisent les coordonnées du coin supérieur gauche de la zone du canevas à afficher.
#-------------#
width
largeur à prendre en compte. Par défaut, la largeur visible du canevas.

Méthodes de défilement et de déplacement

F

#----------------------------------------------#
    Canvas.icursor(item,index)

En supposant que l’item sélectionné permette l’insertion de texte et qu’il possède le focus, positionne le curseur d’insertion à la position index laquelle est soit un entier ou la chaîne “end”. N’a pas d’effet autrement.

#----------------------------------------------#
Canvas.scan_dragto(x,y,gain=10.0)

Sert à faire défiler le canevas.

#----------------------------------------------#
Canvas.scan_mark(x,y)

Cette méthode sert à réaliser des défilements rapides du canevas. L’intention est que l’utilisateur puisse faire défiler le canevas par cliquer-glisser c’est à dire en appuyant sur un bouton de la souris (sans relâcher) et en la déplaçant jusqu’au relâchement. Pour réaliser cette fonctionnalité, lier l’événement souris «bouton appuyé» à un gestionnaire qui appelle cette méthode en positionnant x et y à la position de la souris. Ensuite, lier l’événement ”<Motion>” à un gestionnaire qui, en supposant que le bouton de la souris n’est pas relâché, appelle scan_dragto(x, y, gain)() en positionnant x et y aux coordonnées de la souris ; le paramètre gain sert à contrôler le rythme du défilement, sa valeur par défaut est 10.0. Utiliser une valeur plus grande pour accélérer le défilement.

#----------------------------------------------#
Canvas.select_adjust(item,index)

Trouve l’extrémité de la sélection courante la plus proche du caractère donné par  index et l’ajuste de façon que la nouvelle sélection contienne ce caractère. L’autre extrémité de la sélection devient le point d’ancrage pour une utilisation ultérieure de select_to(). Si il n’y avait aucune sélection, se comporte comme la méthode select_to().

#----------------------------------------------#
Canvas.select_clear()

Supprime la sélection courante (pas ce qui est sélectionné) si elle existe, autrement ne fait rien.

#----------------------------------------------#
Canvas.select_from(item,index)

Positionne le point d’ancrage de la sélection juste avant le caractère précisé par index dans le texte de l’item donné par item. Cette méthode ne modifie pas une sélection existante, elle positionne simplement la marque de fin de sélection pour l’utilisation ultérieur de select_to().

#----------------------------------------------#
Canvas.select_item()

S’il y a une sélection de texte dans ce canevas, retourne l’identifiant de l’item texte qui contient la sélection. Sinon, retourne None.

#----------------------------------------------#
Canvas.tag_lower(item,Au-dessous)

Déplace les items item juste en-dessous du premier ou seul item indiqué par Au-dessous. S’il y en a plusieurs, leur ordre relatif n’est pas modifié. Cette méthode ne s’applique pas aux items fenêtre, window.

#----------------------------------------------#
Canvas.tag_raise(item,Au-dessus)

Déplace les items sélectionnés par item juste au-dessus du premier ou seul item sélectionné par Au-dessus. S’il y en a plusieurs, leur ordre relatif n’est pas modifié. Cette méthode ne s’applique pas aux items fenêtre, window.

#----------------------------------------------#
Canvas.type(item)

Retourne le type du premier ou seul item sélectionné par item. La valeur de retour est l’une des chaînes suivante ::

'arc', 'bitmap', 'image', 'line', 'oval', 'polygon', 'rectangle', 'text', or 'window'.
#----------------------------------------------#
Canvas.xview_moveto(fraction)

Cette méthode fait défiler le canevas relativement à sa fenêtre de vue. L’intention est de faire une liaison avec l’option command d’une barre de défilement qui aurait été associée à ce canevas. Le défilement est horizontal jusqu’à une position entre 0 et 1 (argument fraction): 0.0 pour sa position la plus à gauche et 1.0 pour sa position la plus à droite.

#----------------------------------------------#
Canvas.yview_moveto(fraction)

Même chose que xview_moveto mais verticalement.

#----------------------------------------------#
    Canvas.xview_scroll(n,defile)

Cette méthode fait défiler le canevas à gauche ou à droite. L’argument defile précise le défilement qui peut être soit “units” soit “pages”, n précise le nombre d’unité du déplacement (vers la droite si positif, vers la gauche autrement). “units” se réfère à l’option xscrollincrement . Pour “pages”, n est multiplié par 90% de la largeur de la page.

#----------------------------------------------#
    Canvas.yview_scroll(n,defile)

Même chose que xview_scroll mais verticalement.