⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Canvas
tkinter.Canvas ( ).addtag_withtag ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Canvas
tkinter.Canvas ( ).addtag_withtag ( )
DESCRIPTION.
Ajoute un tag à tous les éléments, de la zone de dessin, ayant un autres tag en commun.
SYNTAXE.
CAN_Toile.addtag_withtag ( tag , cible )
CAN_Toile ⇨ instance quelconque de tkinter.Canvas ( ) [ OBLIGATOIRE ]
.addtag_withtag ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
tag ⇨ tag à ajouter à l'élément visé [ OBLIGATOIRE ]
cible ⇨ tag déjà présent sur les éléments cible [ OBLIGATOIRE ]
REMARQUES.
tag est un str ( ) quelconque qui sera ajouté à la liste des tags associés aux l'éléments visés.
cible est un str ( ) quelconque c'est un mot clé, ou tag, déjà associé à un groupe d'élément.
Si tag est déjà associé à un élément du groupe désigné par cible, il n'est pas ajouté de nouveau.
EXEMPLE.
import tkinter
def FNC_Cible ( ) :
kabscisse = TKI_Principal.winfo_pointerx ( ) - CAN_Toile.winfo_rootx ( )
kordonnee = TKI_Principal.winfo_pointery ( ) - CAN_Toile.winfo_rooty ( )
kelement = CAN_Toile.find_closest ( kabscisse , kordonnee )
ktags = CAN_Toile.itemcget ( kelement [ 0 ] , "tags" ).split ( ) # car la méthode retourne un str ( ) contenant tous les tags.
LAB_Cible [ "text" ] = f"aux éléments ayant comme\ntags : { ktags [ 0 ] } ou { ktags [ 1 ] }."
TKI_Principal.after ( 100 , FNC_Cible )
def FNC_Selection ( event ) :
kabscisse = TKI_Principal.winfo_pointerx ( ) - CAN_Toile.winfo_rootx ( )
kordonnee = TKI_Principal.winfo_pointery ( ) - CAN_Toile.winfo_rooty ( )
krang = LAB_Instruction [ "text" ].split ( ) [ -1 ]
ktag = "&" + krang
kreference = CAN_Toile.find_closest ( kabscisse , kordonnee )
ktags = CAN_Toile.itemcget ( kreference [ 0 ] , "tags" ).split ( ) # car la méthode retourne un str ( ) contenant tous les tags.
CAN_Toile.addtag_withtag ( ktag , ktags [ 0 ] ) # ajoute le premier tag obtenu dans la liste au dessus puis,
CAN_Toile.addtag_withtag ( ktag , ktags [ 1 ] ) # ajoute le second tag, car la méthode split ( ) retourne une list ( ).
kmessage = ""
for kelement in CAN_Toile.find_withtag ( ktag ) :
kmessage += f"Id. { kelement } : { CAN_Toile.itemcget ( kelement , 'tags' ) }\n"
LAB_Message [ "text" ] = kmessage
LAB_Instruction [ "text" ] = f"Cliquez pour ajouter { int ( krang ) + 1 }"
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
LAB_Instruction = tkinter.Label ( TKI_Principal , text = "Cliquez pour ajouter 1" )
LAB_Cible = tkinter.Label ( TKI_Principal )
LAB_Message = tkinter.Label ( TKI_Principal , justify = "left" , anchor = "w" , height = 11 )
CAN_Toile = tkinter.Canvas ( TKI_Principal , bg = "aqua" , width = 250 , height = 170 )
kcouleurs = [ "red" , "lime" , "blue" , "yellow" , "orange" , "magenta" ]
for kvaleur in range ( 6 ) :
kancre = ( kvaleur * 40 ) + 10
kcouleur = kcouleurs.pop ( )
CAN_Toile.create_rectangle ( kancre , 10 , kancre + 30 , 40 , fill = kcouleur , tags = ( "carre" , kcouleur ) )
CAN_Toile.create_oval ( kancre , 50 , kancre + 30 , 80 , fill = kcouleur , tags = ( "rond" , kcouleur ) )
CAN_Toile.create_oval ( kancre , 95 , kancre + 30 , 115 , fill = kcouleur , tags = ( "ovale" , kcouleur ) )
CAN_Toile.create_line ( kancre , 130 , kancre + 30 , 160 , fill = kcouleur , width = 3 , tags = ( "ligne" , kcouleur ) )
del kcouleurs
CAN_Toile.bind ( "<ButtonRelease-1>" , FNC_Selection )
LAB_Instruction.pack ( )
LAB_Cible.pack ( )
CAN_Toile.pack ( )
LAB_Message.pack ( fill = "both" )
BUT_Quitter.pack ( fill = "both" )
FNC_Cible ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de