⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Canvas
tkinter.Canvas ( ).coords ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Canvas
tkinter.Canvas ( ).coords ( )
DESCRIPTION.
Modifie ou Retourne, les coordonnées des sommets d'un élément d'une zone de dessin.
SYNTAXE.
CAN_Toile.coords ( element , *coordonnees )
CAN_Toile ⇨ instance quelconque de tkinter.Canvas ( ) [ OBLIGATOIRE ]
.coords ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
element ⇨ élément à modifier [ OBLIGATOIRE ]
*coordonnees ⇨ nouvelles coordonnées [ optionnel ]
REMARQUES.
element peut être un int ( ) représentant l'identifiant numérique, un str ( ) indiquant un tag ou la variable, désignant l'élément.
*coordonnees peut être, de préférences, un tuple ( ), sinon une list ( ), voire par défaut, un autre objet séquence valide ou, éventuellement, une suite de int ( ) ou float ( ), en nombre suffisant.
Quel qu’en soit la forme, la collection de valeurs doit posséder un nombre d'éléments paires. Les valeurs de la collection ayant des index paires (0, 2, 4, ...) correspondent aux abscisses des sommets et les valeurs avec des index impaires (1, 3, 5, ...), correspondent aux ordonnées des sommets. La quantité de valeurs dans la collection dépends de la nature de l'élément visé :
- 2 pour les éléments créés avec les méthodes create_bitmap ( ), create_image ( ), create_text ( ) et create_window ( ) ;
- 4 pour les éléments créés avec les méthodes create_rectangle ( ), create_oval ( ) et create_arc ( ) ;
- 4 ou plus pour les éléments créés avec la méthode create_line ( ) ;
- 6 ou plus pour les éléments créés avec la méthode create_polygon ( ).
Pour les éléments créés avec les méthodes create_line ( ) et create_polygon ( ), la quantité de valeurs dans la collection peut augmenter ou diminuer, en restant supérieur ou égal à leur minimum et toujours en nombre paire, pour ajouter ou réduire le nombre de sommets de l'élément. Pour les éléments ne possédant que 2 valeurs pour leur coordonnées, il est préférable d'utiliser la méthode tkinter.Canvas ( ).move ( ).
Si *coordonnees est omis, la méthodes tkinter.Canvas ( ).coords ( ) retourne une list ( ) de float ( ) correspondant aux coordonnées des sommets de element.
EXEMPLE.
import tkinter
def FNC_Action ( event ) :
if TKV_Sommet.get ( ) :
TKV_Sommet.set ( 0 )
else :
kabscisse = TKI_Principal.winfo_pointerx ( ) - CAN_Zone.winfo_rootx ( )
kordonnee = TKI_Principal.winfo_pointery ( ) - CAN_Zone.winfo_rooty ( )
kregion = ( kabscisse - 5 , kordonnee - 5 , kabscisse + 5 , kordonnee + 5 )
ksommet = CAN_Zone.find_enclosed ( *kregion )
if len ( ksommet ) != 0 :
TKV_Sommet.set ( ksommet [ 0 ] )
FNC_Mouvement ( )
def FNC_Mouvement ( ) :
kabscisse = TKI_Principal.winfo_pointerx ( ) - CAN_Zone.winfo_rootx ( )
kordonnee = TKI_Principal.winfo_pointery ( ) - CAN_Zone.winfo_rooty ( )
CAN_Zone.coords ( TKV_Sommet.get ( ) , kabscisse , kordonnee , kabscisse , kordonnee )
kcoordonnees = [ ]
for kelement in range ( 2 , 8 ) :
kcoordonnees.append ( CAN_Zone.coords ( kelement ) [ 0 ] )
kcoordonnees.append ( CAN_Zone.coords ( kelement ) [ 1 ] )
CAN_Zone.coords ( 1 , *kcoordonnees )
CAN_Zone.update ( )
LAB_Coordonnees [ "text" ] = f"tkinter.Canvas ( ).coords ( ) retourne :\n{ CAN_Zone.coords ( 1 ) }"
if TKV_Sommet.get ( ) : TKI_Principal.after ( 100 , FNC_Mouvement )
TKI_Principal = tkinter.Tk ( )
TKV_Sommet = tkinter.IntVar ( )
LAB_Coordonnees = tkinter.Label ( TKI_Principal )
CAN_Zone = tkinter.Canvas ( TKI_Principal , bg = "aqua" , width = 400 , height = 400 )
CAN_Zone.create_polygon ( 50 , 200 , 125 , 330 , 275 , 330 , 350 , 200 , 275 , 70 , 125 , 70 , fill = "" , outline = "blue" )
CAN_Zone.create_oval ( 50 , 200 , 50 , 200 )
CAN_Zone.create_oval ( 125 , 330 , 125 , 330 )
CAN_Zone.create_oval ( 275 , 330 , 275 , 330 )
CAN_Zone.create_oval ( 350 , 200 , 350 , 200 )
CAN_Zone.create_oval ( 275 , 70 , 275 , 70 )
CAN_Zone.create_oval ( 125 , 70 , 125 , 70 )
CAN_Zone.bind ( "<ButtonRelease-1>" , FNC_Action )
tkinter.Label ( TKI_Principal , text = "Cliquez pour sélectionner.\nBougez pour déplacer.\nCliquez pour fixer." ).pack ( )
CAN_Zone.pack ( )
LAB_Coordonnees.pack ( )
tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy ).pack ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de