Créer des interfaces graphiques interactives en Python peut sembler complexe.
Sans les bons outils, concevoir des applications visuellement attrayantes devient un défi frustrant.
Découvrez le widget Canvas de Tkinter, un outil puissant pour dessiner, gérer des images et du texte efficacement dans vos projets Python.
Créez des interfaces graphiques interactives avec Python et TKinter !
Introduction au Widget Canvas Tkinter
Le widget Canvas dans Tkinter est un outil central pour le développement d’interfaces graphiques interactives. Il permet de dessiner des formes géométriques, d’afficher du texte, de charger des images, et même de créer des animations simples. Grâce à sa flexibilité, Canvas est largement utilisé pour développer des applications interactives, des jeux, ou encore des outils de visualisation.
Création et Configuration d'un Canvas
Pour utiliser un Canvas, il est nécessaire de suivre quelques étapes fondamentales :
- Importer le module Tkinter :Tkinter est la bibliothèque standard de Python pour créer des interfaces graphiques. Il est nécessaire de l’importer pour utiliser ses fonctionnalités.
- Créer une fenêtre principale :La fenêtre principale est le conteneur dans lequel le Canvas sera intégré.
- Initialiser le widget Canvas :Le widget Canvas est créé avec des paramètres tels que la largeur (width), la hauteur (height), et la couleur de fond (bg).
- Afficher le Canvas dans la fenêtre :La méthode pack() ou toute autre méthode de gestion de layout est utilisée pour intégrer le Canvas dans la fenêtre.
Voici le code qui récapitule tous ces étapes :
from tkinter import *
root = Tk()
root.title("Mon application")
root.geometry("800x600+600+200")
canvas = Canvas(root,bg="white",width=500,height=500)
canvas.pack()
root.mainloop()
Dessiner des Formes avec Tkinter Canvas
Dessiner des lignes :
La méthode create_line() permet de tracer des lignes droites entre deux points définis par leurs coordonnées (x1, y1) et (x2, y2). Voici un exemple qui illustre son utilisation:
canvas.create_line(0, 250, 500, 250,fill="red")# Ligne horizontale
canvas.create_line(250, 0, 250, 500,fill="red")# Ligne verticale
L’attribut fill permet de définir la couleur de la ligne. Ainsi voici le résultat d’exécution de ce code :
Dessiner un ovale :
La méthode create_oval() crée un ovale à l’intérieur d’un rectangle englobant défini par (x1, y1) et (x2, y2). Voici un exemple d’utilisation:
canvas.create_oval(300, 50, 450, 200,fill="blue",outline="black",width=2)
Les options fill , outline et width permettent de personnaliser l’apparence d’un ovale dessiné avec la méthode create_oval() . L’option fill est utilisée pour remplir l’intérieur de l’ovale avec une couleur spécifique, comme « blue » ou un code hexadécimal. L’option outline détermine la couleur du contour de l’ovale, qui peut être laissée vide si aucun contour n’est souhaité. Enfin, l’option width ajuste l’épaisseur du contour en pixels, avec une valeur par défaut de 1 si elle n’est pas spécifiée. Ces paramètres offrent une flexibilité pour styliser l’ovale selon les besoins de l’application.
En exécutant ce code, une fenêtre Tkinter s’ouvre avec un canevas blanc sur lequel un ovale bleu est dessiné. Cet ovale, encadré d’un contour noir de 2 pixels d’épaisseur, est positionné dans la partie supérieure droite du canevas comme il est montré dans la figure suivante :
Dessiner un arc :
La méthode create_arc() permet de tracer une portion de cercle ou d’ellipse.
canvas.create_arc(300, 300, 450, 450,fill="yellow",outline="black",width=2,start=20,extent=280)
Les options start et extent permettent de définir la portion de l’arc à dessiner avec la méthode create_arc() . L’option start spécifie l’angle de départ de l’arc en degrés, avec 0° correspondant à la direction de droite (comme les aiguilles d’une montre). L’option extent indique l’amplitude de l’arc en degrés, déterminant ainsi la longueur de l’arc à partir de l’angle de départ. Ces paramètres permettent de personnaliser précisément la position et la taille de l’arc dans le canevas.
En exécutant ce code, une fenêtre Tkinter s’ouvre avec un canevas blanc affichant un arc coloré selon les options définies. L’arc est dessiné à partir de l’angle de départ spécifié et s’étend sur l’amplitude en degrés choisie, formant une portion visible de cercle ou d’ellipse, comme il est montré dans la figure suivante.
Dessiner un rectangle :
La méthode create_rectangle() crée un rectangle défini par deux coins opposés (x1, y1) et (x2, y2). Ainsi voici un exemple d’utilisation :
canvas.create_rectangle(50, 50, 200, 200,fill="red",outline="black",width=2)
Ainsi voici le résultat d’exécution du code :
Dessiner un polygone :
La méthode create_polygon() dessine une forme composée de plusieurs segments, définis par une série de coordonnées. Ainsi voici un exemple de son utilisation :
canvas.create_polygon(20, 350, 120, 300, 220, 350, 170, 450, 70, 450,fill="green",outline="black",width=2)
Les coordonnées doivent être fournies dans un ordre qui connecte les sommets du polygone. Voici le résultat d’exécution de ce code :
Insérer des Images dans Canvas Tkinter
Le widget Canvas de Tkinter prend en charge l’affichage d’images grâce à la méthode create_image() , qui permet d’insérer une image dans un canevas à une position donnée. Pour utiliser cette méthode, il est d’abord nécessaire de charger l’image avec l’objet PhotoImage . Cet objet prend en charge des formats compatibles avec Tkinter, tels que PNG ou GIF . Voici un exemple d’utilisation :
python_image = PhotoImage(file="python.png")
canvas.create_image(250, 250,image=python_image)
L’image utilisée avec la méthode create_image() doit être dans un format compatible avec Tkinter, tel que PNG ou GIF. Pour garantir le bon fonctionnement du script, il est recommandé de placer l’image dans le même répertoire que le fichier Python, afin d’éviter les erreurs liées au chemin d’accès au fichier. Ainsi voici le résultat d’exécution de ce code :
Ajouter du Texte avec Canvas Python
Pour afficher du texte dans un canevas Tkinter, utilisez la méthode create_text() , qui permet d’ajouter une chaîne de caractères à une position spécifique définie par ses coordonnées (x, y) . Ces coordonnées correspondent au point d’ancrage du texte, qui peut être centré ou aligné selon les besoins grâce à l’option anchor . La méthode offre également plusieurs options pour personnaliser l’apparence du texte, telles que la police, la taille, la couleur et l’alignement. Voici un exemple de son utilisation :
canvas.create_text(20, 20,text="Mon Canevas",font="Dubai 20",anchor=W,fill="blue")
La méthode create_text() offre plusieurs options pour personnaliser le style et l’apparence du texte affiché. L’option font permet de spécifier la police et la taille du texte, en utilisant un tuple contenant le nom de la police, la taille en points, et éventuellement un style comme « bold » ou « italic ». L’option anchor détermine l’alignement du texte par rapport aux coordonnées spécifiées ; par exemple, utiliser anchor= »W » aligne le texte à gauche du point (x, y), tandis que anchor= »center » le centre par défaut. Enfin, l’option fill définit la couleur du texte, qui peut être spécifiée par un nom (comme « red » ou « blue ») ou par un code couleur hexadécimal (par exemple, « #FF5733 »). Ces paramètres permettent de styliser et positionner le texte de manière flexible dans le canevas.
Voici le résultat d’exécution de ce code :
Conclusion sur l'Interface Graphique Tkinter
Le widget Canvas offre une grande liberté pour concevoir des interfaces graphiques visuellement riches. En maîtrisant les fonctionnalités de base présentées ici, vous pouvez commencer à développer des applications interactives et personnalisées. Expérimentez avec différentes formes, couleurs, et styles pour créer des designs uniques.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment créer un Canvas dans Tkinter ?
Comment dessiner des formes sur un Canvas ?
Comment insérer des images dans un Canvas ?
Comment ajouter du texte sur un Canvas ?
Quels sont les avantages d'utiliser le widget Canvas ?
Conclusion
Le widget Canvas de Tkinter vous permet de créer des interfaces graphiques riches et personnalisées. Quelle sera votre prochaine création graphique avec Canvas ?