Exercice 10
Ecrire un programme en Python qui crée une classe nommée WindowTK permettant de générer une fenêtre tkinter ayant comme attributs:
- title: titre de la fenêtre
- largeur : largeur de la fenêtre
- hauteur: hauteur de la fenêtre
La classe doit contenir :
- Une méthode nommée display(): qui affiche la fenêtre,
- Une méthode resize(): permettant de redimensionner la fenêtre,
- Une methode addButton(): qui ajoute un widget button,
- Une méthode addEntry(): qui ajoute un champ de saisie Entry(),
- Une méthode addLabel(): qui ajoute un Label.
Donner ensuite un exemple d'usage de la classe WindowTK qui affiche une fenêtre qui demande à l'utilisateur de saisir son nom et de lui afficher un message: "Bienvenu [nom]"
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import tkinter as tk class WindowTK: def __init__(self, title, width, height): self.title = title self.width = width self.height = height self.window = tk.Tk() self.window.title(self.title) self.window.geometry(f"{self.width}x{self.height}") def display(self): self.window.mainloop() def resize(self, width, height): self.width = width self.height = height self.window.geometry(f"{self.width}x{self.height}") def addButton(self, text, callback, row, column): button = tk.Button(self.window, text=text, command=callback) button.grid(row=row, column=column) def addEntry(self, row, column): entry = tk.Entry(self.window) entry.grid(row=row, column=column) return entry def addLabel(self, text, row, column): label = tk.Label(self.window, text=text) label.grid(row=row, column=column) # Exemple d'utilisation def welcome_message(): name = entry_name.get() message = f"Bienvenue {name}!" window.addLabel(message, 3, 0) window = WindowTK("Ma fenêtre", 400, 300) window.addLabel("Veuillez saisir votre nom :", 0, 0) entry_name = window.addEntry(0, 1) window.addButton("Afficher le message", welcome_message, 1, 0) window.display() |
Explication du code:
- La méthode __init__() : définit le constructeur de la classe ayant les attributs de la fenêtre tkinter.
- Les méthodes display(), resize(), addButton() et addEntry(): sont utilisées pour afficher la fenêtre, redimensionner la fenêtre, ajouter un bouton et ajouter un champ de saisie respectivement.
- L'exemple d'utilisation: montre comment créer une instance de WindowTK, ajouter un bouton avec un gestionnaire d'événements et ajouter un champ de saisie à la fenêtre, puis afficher la fenêtre à l'aide de la méthode display.
- Lorsque le bouton est cliqué : il exécute la fonction welcome_message, qui récupère le nom saisi par l'utilisateur, crée un message de bienvenue et utilise la méthode addLabel pour afficher ce message dans la fenêtre.
Younes Derfoufi
CRMEF OUJDA