Objectifs
- Etre capable de programmer des applications tkinter avec des classes
Rappel
- Ce projet a pour but de découvrir la programmation en Python utilisant une interface graphique.
- Il existe plusieurs modules Python permettant d’exploiter les interfaces graphiques.
- Le plus simple est le module tkinter présent lors de l’installation du langage Python.
- On utilisera l'environnement idle (version 3.8.5) pour coder en Python.
- L'objectif de ce TP est de vous amener à développer un interface graphique en Python, basée sur le package Tkinter.
- Cette bibliothèque est un pont (une façade) vers l'interface graphique Tk, qui était l'interface d'un autre langage de script connu nommé Tcl.
- Au bout de ce TP, vous aurez une calculatrice simple.
- Une autre façon de faire de la mise en page est d'utiliser la méthode
gridplutôt que pack ou place. Cette fois-ci, on place les composants dans un conteneur simplement en précisant à quelle ligne et à quelle colonne on les place. - Le widget Entry est un widget Tkinter standard utilisé pour saisir ou afficher une seule ligne de texte.
- Le texte est affiché dans une police de caractère "Font" et de taille 20. (font=("Courier", 20)).
- Pour récupérer le texte actuel de l'entrée, utilisez la méthode get:
s = e.get ()- Vous pouvez également lier le widget d'entrée à une instance de StringVar et définir ou obtenir le texte de l'entrée via cette variable:
v = StringVar () e = Entrée (maître, variable text = v) e.pack ()- Vous pouvez choisir entre les deux méthodes suivantes pour définir le texte d'un Entrywidget. Pour les exemples, supposons la bibliothèque importée import tkinter as tket la fenêtre racine root = tk.Tk().
Utiliser delete et insert
-
- Widget Entry fournit des méthodes
deleteetinsertqui peuvent être utilisées pour définir son texte sur une nouvelle valeur. - Tout d' abord, vous devrez enlever tout ancien, ancien texte de Entry avec
deletequi a besoin des positions où commencer et terminer la suppression. - Puisque nous voulons supprimer l'ancien texte complet, nous commençons 0et finissons à l'endroit où se trouve actuellement la fin.
- Nous pouvons accéder à cette valeur via END. Ensuite, le Entry est vide et nous pouvons insérer new_text à la position 0.
entry = tk.Entry(root) new_text = "Example text" entry.delete(0, tk.END) entry.insert(0, new_text) - Widget Entry fournit des méthodes
Utilisation StringVar
-
- Vous devez créer un nouvel objet StringVar appelé entry_text dans l'exemple. En outre, votre widget Entry doit être créé avec un argument de mot-clé textvariable.
- Ensuite, chaque fois que vous changez entry_text avec set, le texte apparaîtra automatiquement dans le widget Entry.
entry_text = tk.StringVar() entry = tk.Entry(root, textvariable=entry_text) new_text = "Example text" entry_text.set(new_text) Exemple
import tkinter as tk def button_1_click(): # define new text (you can modify this to your needs!) new_text = "Button 1 clicked!" # delete content from position 0 to end entry.delete(0, tk.END) # insert new_text at position 0 entry.insert(0, new_text) def button_2_click(): # define new text (you can modify this to your needs!) new_text = "Button 2 clicked!" # set connected text variable to new_text entry_text.set(new_text) root = tk.Tk() entry_text = tk.StringVar() entry = tk.Entry(root, textvariable=entry_text) button_1 = tk.Button(root, text="Button 1", command=button_1_click) button_2 = tk.Button(root, text="Button 2", command=button_2_click) entry.pack(side=tk.TOP) button_1.pack(side=tk.LEFT) button_2.pack(side=tk.LEFT) root.mainloop()Exercice 04
Énoncé
- Vous pouvez visualiser l'énoncé de l'exercice
Correction
Exercice 02
Énoncé
- Vous pouvez visualiser l'énoncé de l'exercice
Solution
Exercice 03
Énoncé
- Vous pouvez visualiser l'énoncé de l'exercice
Solution