Canvas , qui signifie toile en chinois, correspond à une zone rectangulaire dans le module Tkinter, offrant aux utilisateurs un espace pour dessiner. Ils peuvent placer des graphiques, du texte, des ellipses ou des boutons et d'autres composants sur la toile, et peuvent également peindre des motifs.
Avant d'utiliser le composant Canvas, nous devons d'abord connaître son système de coordonnées d'écran correspondant.
Nous utilisons généralement les pixels comme unités pour les images dans les ordinateurs, et chaque pixel a 2 valeurs. Dans le composant Canvas, les coordonnées du coin supérieur gauche de la fenêtre correspondante sont (0,0), ce qui signifie que dans le système de coordonnées plan rectangulaire. Les axes x et y correspondants sont tous deux 0, et les coordonnées du coin inférieur droit de la fenêtre sont les deux valeurs maximales de l'axe x et de l'axe Y, comme le montre la figure :
Lorsque nous plaçons des composants dans le canevas Canvas, nous devons nous assurer que les coordonnées des composants sont correctes.
La structure syntaxique de Canvas est la suivante :
my_canvas=Canvas (classe parent, facultatif)
La classe parent est le nom de la fenêtre du calque supérieur que nous avons placée. Les options incluent bd, bg, continue, curseur, hauteur, largeur, couleur de surbrillance, relief, région de défilement, etc. Ces options ont été introduites précédemment, je n'y vais donc pas. dans trop de détails ici.
Il existe de nombreuses façons de dessiner des graphiques à l'aide du composant Canves, notamment create_line, create_rectangle, create_oval, create_arc et create_polygon. Nous les présenterons une par une ci-dessous.
Le format de syntaxe est le suivant :
toile.create_line(x1,y1,x2,y2,...,xn,yn,options)
Nous pouvons utiliser cette méthode pour tracer une ligne droite entre deux ou n points sur le canevas. Les deux premières coordonnées (x1, y1) sont le point de départ et (xn, yn) sont le point final.
Le code est le suivant :
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height =300,bg='pink')self.canvas.create_line(30,30,100,200,200,200,300,200,300,300)self.canvas.pack()tkinter.mainloop()m=TK()
L'effet est comme le montre la figure :
Les coordonnées que nous avons sélectionnées sont (30,30)->(100,200)->(200,200)->(300,300). Sur la base des coordonnées ci-dessus, nous dessinons l'image ci-dessus.
La syntaxe pour créer un rectangle est la suivante :
canvas.create_rectangle(x1,y1,x2,y2, facultatif)
Le rectangle n'a besoin que de 2 coordonnées pour être déterminé, nous n'avons donc besoin que des coordonnées (x1, y1) et (x2, y2) du coin supérieur gauche et du coin inférieur droit. Le code est le suivant :
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=30 0,height=300,bg='pink')self.canvas.create_rectangle(100,100,200,200)self.canvas.pack()tkinter.mainloop()m=TK()
Le fonctionnement est comme indiqué sur la figure :
Le format de syntaxe est le suivant :
toile.create.oval(x1,y1,x2,y2,facultatif)
Les positions correspondant aux quatre coordonnées sont telles qu'indiquées sur la figure :
Le format de syntaxe est le suivant :
canvas.create_arc(x1,y1,x2,y2,start=angle,extent=width,facultatif)
Parmi elles, les coordonnées correspondent à l'ellipse dans la figure ci-dessus. La valeur de début correspond à l'angle de départ de l'arc et l'étendue correspond à la plage d'angle dans le sens inverse des aiguilles d'une montre de l'arc.
Le code est le suivant :
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=30 0,bg='pink')self.canvas.create_arc(60,60,220,220,start=0,extent=120,fill='blue')self.canvas.pack()tkinter.mainloop()m=TK()
Le fonctionnement est comme indiqué sur la figure :
Le format de syntaxe est le suivant :
canvas.create_polygon(x1,y1,x2,y2,...xn,yn,facultatif)
Chaque coordonnée correspond à une position, la première est le premier sommet, qui sont liés en séquence, et la dernière coordonnée ferme automatiquement le polygone.
Le code est le suivant :
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas .create_polygon(150,0,200,100,300,100,200,185,280,280,150,230,20,280,100,185,0,100,100,100,fill='red')self.canvas.pack()tkinter.mainloop()m=TK()
Le schéma de fonctionnement est le suivant :
Vous pouvez dessiner les graphiques souhaités en modifiant les coordonnées. Les paramètres facultatifs incluent le tiret, le contour, la profondeur et la largeur.
Nous pouvons dessiner divers motifs à travers le canevas. Bien sûr, il a également d'autres fonctions. Nous l'utiliserons également dans les exemples de la section suivante.