1. Description du widget Canvas Tkinter
Le widget Canvas est une classe de la biliothèque Tkinter Python offrant la possibilité de création d'une zone de dessin sur laquelle vous pouvez dessiner des formes, des images et du texte. Il est souvent utilisé pour créer des interfaces utilisateur graphiques (GUI) personnalisées, des graphiques simples, des diagrammes et d'autres éléments visuels interactifs dans les applications Python.
2. Syntaxe et paramètre du widget canvas
La syntaxe générale pour créer un widget Canvas en Tkinter est la suivante :
1 |
canvas = Canvas(parent, options...) |
Où :
- parent : est le widget parent dans lequel vous souhaitez placer le widget Canvas.
- options : sont des options facultatives qui peuvent être spécifiées pour personnaliser le comportement et l'apparence du widget.
Voici quelques-unes des options les plus couramment utilisées avec le widget Canvas et leur description :
- width: Largeur du canvas en pixels.
- height: Hauteur du canvas en pixels.
- bg (background): Couleur de fond du canvas.
- highlightthickness: Épaisseur du bord lorsqu'il est en surbrillance.
- bd (borderwidth): Épaisseur du bord.
- relief: Style de la bordure (FLAT, SUNKEN, RAISED, GROOVE, RIDGE).
- bind: Associe un événement à une fonction de rappel.
- xscrollcommand : et yscrollcommand: Pour ajouter des barres de défilement horizontales et verticales.
3. Syntaxes d'usages des parmètres du widget canvas
3.1 Options width et height
1 |
canvas = Canvas(parent, width=400, height=300) |
3.2 Option couleur de fond
1 |
canvas = Canvas(parent, bg="blue") |
3.3 Option highlightthickness
1 |
canvas = Canvas(parent, highlightthickness=0, bd=0) |
3.4 Option de bordure
1 |
canvas = Canvas(parent, relief="solid") |
3.5 Option de gestion des événements
1 |
canvas.bind("", callback_function) |
3.6 Options de défilement
1 2 |
xscrollbar = Scrollbar(parent, orient="horizontal", command=canvas.xview) canvas.configure(xscrollcommand=xscrollbar.set) |
3.7 Options de zoom
1 2 |
canvas.scale("all", 0, 0, 1.5, 1.5) # Met à l'échelle tout le contenu du canvas par un facteur de 1.5 |
Exemple
1 2 3 4 5 6 7 8 9 10 |
from tkinter import * root = Tk() root.geometry("400x300") # créer un objet canvas avec options canvas = Canvas(root, width=300, height=200 , bg = "brown", relief="solid") canvas.place(x = 50 , y = 50) root.mainloop() |
4. Liste des méthodes associées au widget canvas
Le widget Canvas de Tkinter dispose de plusieurs méthodes permettant de manipuler et interagir avec les éléments graphiques dessinés sur le canvas. Voici une liste de certaines des méthodes les plus couramment utilisées :
- addtag(): Ajoute un tag à un ou plusieurs objets.
- canvasx(): Convertit une coordonnée de fenêtre en coordonnée de canvas.
- canvasy(): Convertit une coordonnée de fenêtre en coordonnée de canvas.
- coords(): Modifie les coordonnées d'un objet.
- create_bitmap(): Crée un bitmap.
- create_image(): Affiche une image.
- create_line(): Crée une ligne.
- create_oval(): Crée un cercle ou une ellipse.
- create_polygon(): Crée un polygone.
- create_rectangle(): Crée un rectangle.
- create_text(): Affiche du texte.
- delete(): Supprime un ou plusieurs objets.
- gettags(): Récupère les tags associés à un objet.
- itemconfig(): Configure les options d'un objet.
- move(): Déplace un objet.
- postscript(): Génère une description PostScript du contenu du canvas.
- scale(): Met à l'échelle un ou plusieurs objets.
- tag_bind(): Associe une fonction de rappel à un ensemble d'objets identifiés par un tag.
- tag_unbind(): Désassocie une fonction de rappel d'un ensemble d'objets identifiés par un tag.
- update(): Met à jour le canvas pour refléter les modifications.
- winfo_pointerx(): Récupère la position X actuelle du pointeur de la souris sur le canvas.
- winfo_pointery(): Récupère la position Y actuelle du pointeur de la souris sur le canvas.
- xview(): Fournit une vue sur l'axe horizontal pour permettre le défilement.
- yview(): Fournit une vue sur l'axe vertical pour permettre le défilement.
- Sélection d'objets graphiques :
- create_arc(): Crée un arc.
5. Exemples d'usages du widget canvas tkinter
5.1 Création d'un rectangle
Pour créer un rectangle avec canvas, ce dernier nous offre la méthode create_rectangle():
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from tkinter import* # Création de la fenêtre principale root = Tk() root.geometry("300x200") root.title("Exemple de Rectangle avec Canvas") # Création du widget Canvas canvas = Canvas(root, width=250, height=150, bg="#ababab") canvas.pack() # Création d'un rectangle rectangle = canvas.create_rectangle(50, 50, 200, 100, fill="blue") # Lancer la boucle principale Tkinter root.mainloop() |
5.2 Création d'un cercle avec canvas
Pour créer un cercle avec canvas, on peut utiliser la méthode create_oval():
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from tkinter import* # Création de la fenêtre principale root = Tk() root.geometry("300x200") root.title("Exemple de Cercle avec Canvas") # Création du widget Canvas canvas = Canvas(root, width=250, height=170, bg="#ababab") canvas.pack() # Création d'un cercle (ellipse avec largeur et hauteur égales) cercle = canvas.create_oval(30, 30, 150, 150, fill="red") # Lancer la boucle principale Tkinter root.mainloop() |
5.3 Création d'une ligne
Pour créer une ligne avec canvas, on peut utiliser la méthode create_line():
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from tkinter import* # Création de la fenêtre principale root = Tk() root.geometry("300x200") root.title("Exemple de Corde (Ligne) avec Canvas") # Création du widget Canvas canvas = Canvas(root, width=250, height=170, bg="#ababab") canvas.pack() # Création d'une corde (ligne) corde = canvas.create_line(50, 50, 150, 100, width=2, fill="green") # Lancer la boucle principale Tkinter root.mainloop() |
5.4 Création de triangle ou polygone avec canvas tkinter
Pour créer un triangle ou polygone avec canvas tkinter, on utilise la méthode create_polygon():
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from tkinter import* # Création de la fenêtre principale root = Tk() root.geometry("300x200") root.title("Exemple de Triangle avec Canvas") # Création du widget Canvas canvas = Canvas(root, width=250, height=170, bg="#ababab") canvas.pack() # Création d'un triangle triangle = canvas.create_polygon(50, 150, 150, 150, 100, 50, fill="orange") # Lancer la boucle principale Tkinter root.mainloop() |
Younes Derfoufi
CRMEF OUJDA