Formation en langage Module Tkinter pour la création des IHM Date : du 21 au 24
Python (GUI) mai 2024
Structure d’un code Python du module tkinter :
import tkinter as tk
from tkinter import ttk
# Déclaration des fonctions
def fonction1():
def fonction2():
# Création et paramétrage d’une fenêtre
window = tk.Tk()
window.geometry('widthxheight')
window.title('Titre de la fenêtre')
window.iconbitmap('logo.ico')
window.resizable(False, False)
window.config(background='#41B77F')
# Ajouter des Widgets
label= ttk.Label(window, text="Label")
label.pack()
entry= ttk.Entry(window)
entry.pack()
# Afficher la fenêtre
window.mainloop()
Variables du module tk pour récupérer les valeurs des widgets :
• nom_variable = tk.StringVar(value=valeur_par_défaut) ;
• nom_variable = tk.IntVar(value=valeur_par_défaut) ;
• nom_variable = tk.DoubleVar(value=valeur_par_défaut) ;
• nom_variable = tk.BooleanVar(value=valeur_par_défaut.
Widget Entry Label
Récupérer nom_entry.get() (NB : str)
une valeur var_entry.get() (NB: str)
nom_entry.set(valeur) (NB : str) nom_label.config(text=valeur)
Afficher
nom_label.configure(text=valeur)
une valeur var_entry.set(valeur) (NB : str)
nom_label[‘text’]=valeur
nom_entry.delete(0,’end’) nom_label.config(text=’’)
Effacer nom_label.configure(text=’’)
var_entry.set(‘’)
nom_label[‘text’]=’’
Pour tester si un widget Entry est vide : len(nom_entry.get()) == 0
photo=tk.PhotoImage(file=’image.png’)
Insérer une image dans un
image_label=ttk.Label(root, image=photo, padding=5)
label image_label.pack()
Liens pour télécharger des icônes www.iconfinder.com https://www.flaticon.com/fr/icones
GUI avancées https://ttkbootstrap.readthedocs.io/en/latest/ https://customtkinter.tomschimansky.com/
Création d’une IHM avec la méthode pack() Création d’une IHM avec la méthode place() Création d’une IHM avec la méthode grid()
Pour chaque cas les dimensions de la fenêtre est de: 300x240
Utilisez de Frames (5 frames) Utilisez un frame principal avec padding de
10px.
Utilisez la méthode pack() avec la valeur Utilisez la méthode place() pour placer les Utilisez la méthode grid() avec les
‘left’ du propriété ‘side’. Widgets sur la fenêtre. propriétés row, column, sticky, padx, pady
Et 10px pour le ‘padding’ dans les deux et columnspan pour placer les Widgets sur
directions. la fenêtre.
1. Créez deux variables de type "Double" pour récupérer les valeurs des zones de texte Entry1 et Entry2
2. Créez une variable de type "Int" pour récupérer la valeur de chaque bouton Radio "Radiobutton"
3. Créez une fonction "calcule()" qui calcul et affiche le résultat sur le label lorsqu’on clique sur le bouton calculer.
4. Créez une fonction "effacer()" qui efface le résultat du label et des deux zones de texte Entry1 et Entry2 lorsqu’on clique sur
le bouton effacer.