0% ont trouvé ce document utile (0 vote)
12 vues5 pages

Introduction à Tkinter en Python

Ce document présente un TP sur l'utilisation de Tkinter pour créer des interfaces graphiques en Python. Il contient des exercices pratiques sur la création de fenêtres, la modification de widgets, l'interactivité, ainsi que des concepts avancés comme les menus, les formulaires et la gestion dynamique de listes. Des exemples de code et des explications sur les différents widgets de Tkinter sont également fournis.

Transféré par

daoud9638
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues5 pages

Introduction à Tkinter en Python

Ce document présente un TP sur l'utilisation de Tkinter pour créer des interfaces graphiques en Python. Il contient des exercices pratiques sur la création de fenêtres, la modification de widgets, l'interactivité, ainsi que des concepts avancés comme les menus, les formulaires et la gestion dynamique de listes. Des exemples de code et des explications sur les différents widgets de Tkinter sont également fournis.

Transféré par

daoud9638
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ECINE 1 : TP Python

Série 9 : TKINTER
Dans ce TP, nous allons nous concentrer uniquement sur l’utilisation du module Tkinter pour la création
d’interfaces graphiques en Python.

Exercice 1

1 – Première fenêtre
a) Exécutez le code ci-dessous.
b) Que représente root ?
c) Que fait la méthode .geometry() ?
d) Que se passe-t-il quand on clique sur “Quitter” ?
import tkinter as tk

def main():
root = [Link]()
[Link]('Ma Fenêtre Tkinter')
[Link]('300x150')

label_bienvenue = [Link](root, text='Bonjour, Tkinter!')


label_bienvenue.pack(pady=10)

btn_quitter = [Link](root, text='Quitter', command=[Link])


btn_quitter.pack()

[Link]()

if __name__ == '__main__':
main()

2 – Modification d’un widget


a) Modifiez le texte du Label.
b) Changez le texte du bouton.
c) Modifiez la couleur de fond de la fenêtre.

3 – Interactivité simple
Ajoutez ce bouton à la fenêtre précédente, puis observez ce qu’il fait :
def saluer():
print("Bonjour depuis la console !")

btn_saluer = [Link](root, text="Dire Bonjour", command=saluer)


btn_saluer.pack()

Que fait ce bouton ? Que signifie command=saluer ?


Exercice 2

1 – Champ de saisie
Complétez le code pour qu’un utilisateur puisse entrer son nom et voir s’afficher un message
personnalisé.

2 – Interface structurée avec Frame


a) Créez deux Frame : une en haut pour la saisie, une en bas pour la sélection.
b) En haut : un champ Entry pour le nom.
c) En bas : une Listbox avec plusieurs options, un bouton « Valider », et un Label pour afficher la
sélection.

3 – Menus simples
a) Créez une barre de menus.
b) Ajoutez un menu « Fichier » → « Quitter ».
c) Ajoutez un menu « Aide » → « À propos » (affiche une boîte d’information).

Exercice 3

1 – Mini Calculatrice
Créez une application Tkinter qui simule une calculatrice simple :

a) Deux champs Entry permettent à l’utilisateur de saisir deux nombres.


b) Quatre boutons permettent d’effectuer : addition, soustraction, multiplication, division.
c) Le résultat s’affiche dans un Label.
d) Utilisez grid() pour organiser les widgets dans un tableau.

Bonus :
- Gérez la division par zéro.
- Affichez un message clair si l’utilisateur entre un texte au lieu d’un nombre.

2 – Formulaire interactif
Créez un formulaire contenant :

a) Champ de nom
b) Liste déroulante (OptionMenu ou Combobox)
c) Bouton de validation
d) Affichage du résumé dans un Label

3 – Gestion dynamique d’une liste


Créez une interface permettant :

a) D’ajouter un élément dans une Listbox


b) De supprimer un élément sélectionné
c) D’afficher tous les éléments dans un Label
FICHE INTERFACE GRAPHIQUE
Bibliothèque à importer pour
créer des applications from tkinter import *
graphiques On importe toutes les classes.

fen_princ = Tk()
Création d’une fenêtre # Insérer ici vos différents widgets
fen_princ.mainloop()

Afficher un widget rattaché à [Link]()


une fenêtre
Il existe d’autres façons d’afficher les widgets.

WIDGET Label : Pour afficher un texte

monAffichage = Label(fen_princ, text="Mon texte ici !")


Création d’un objet-Label [Link]()

Première indication fen_princ : Désigne la fenêtre à laquelle le widget est rattaché

Attribut text text="Mon texte ici !" : On donne le contenu du Label.

Attribut foreground fg fg="red" : Couleur du texte

Attribut background bg bg="black" : Couleur du fond

Attribut font font=("Helvetica", 32) : Police taille 32 en Helvetica

Attribut height height = 3 : Le Label s’étend sur 3 lignes

Attribut width width = 15 : permet de définir la largeur du Label

anchor= W : permet d’ancrer le texte à la bordure gauche(West)


Attribut anchor
Les autres possibilités : CENTER, N, S, W, E, NE, NW, SEW, SW

wraplength=800 : permet de fixer la longueur (en mesure-écran) à partir de


Attribut wraplength
laquelle on passe en mode multiligne.

monTexte = StringVar() # Création d’un objet StringVar


[Link]("Hello World !") # Affectation via méthode set
monAffichage = Label(fen_princ, textvariable=monTexte)
Attribut textvariable [Link]() # Affichage du widget monAffichage
Permet de donner le texte à Pour modifier le contenu du Label : [Link]("Bonjour le Monde !")
afficher dans un objet-String Attention, on utilise set avec StringVar et pas l’affectation des Strings avec =.
particulier, un string variable, de
classe StringVar. Pour lire le contenu de monTexte, deux techniques :
lecture = [Link]()
lecture = [Link]()

Méthode cget() pour lire le contenu des attributs


Exemple 1 : Lecture de la [Link]('fg')
couleur de fond

Exemple 2 : Lecture du texte [Link]('text')


du Label Text

1
Méthode config ou configure pour modifier le contenu des attributs
Exemple 1 : Modification de [Link](fg='red')
la couleur de fond

Exemple 2 : Modification du [Link](text='nouveau texte à afficher')


texte du Label Text

Remarque : Si les modifications sont courantes et si elles peuvent affecter plusieurs widgets, autant utiliser un
StringVar.

WIDGET Button : Pour activer le code d’une fonction

Création d’un monBouton = Button(fen_princ, text="Appuyez !", command=mise_a_jour)


objet-Button [Link]()

Première
fen_princ : Désigne la fenêtre à laquelle le widget est rattaché
indication

Attribut text Cet attribut permet de définir le texte qui s’affichera : text="Appuyer ici !"

Attribut Lorsqu’on cliquera sur le bouton, cela enclenchera la fonction mise_a_jour


command command=mise_a_jour # Attention, on ne place pas les parenthèses()

def mise_a_jour():
[Link]("Et voilà !")
Exemple de code
fen_princ = Tk()
intégrant un monTexte = StringVar()
Button qui
[Link]("Hello World !")
change le texte monAffichage = Label(fen_princ, textvariable=monTexte)
d’un Label ayant [Link]()
un texte variable : monBouton = Button(fen_princ, text="Changer !", command=mise_a_jour)
[Link]()
fen_princ.mainloop()

WIDGET Entry : Pour récupérer du texte tapé par l’utilisateur


Création d’un objet-Entry
associé à un StringVar
nom_fichier = StringVar()
nom_fichier.set( "mp_rgb_1.jpg" )
entree_fichier = Entry(fen_princ, textvariable=nom_fichier, width=30)
entree_fichier.pack()

Première indication fen_princ : Désigne la fenêtre à laquelle le widget est rattaché

Attribut textvariable Cet attribut permet de définir le nom de l’objet StringVar associé à cet Entry.

Attribut width width = 30 : permet de définir la largeur du Entry, comme pour Label.

Il faut utiliser la méthode get() soit sur le StringVar, soit sur l’Entry :
Lire le texte rentré print(nom_fichier.get())nom_fichier.set( "mp_rgb_1.jpg" )
print(entree_fichier.get())

2
WIDGET Label : Pour afficher une image

La classe Image de base de la bibliothèque PIL n’est pas interprétable par la bibliothèque
Classe Image Tk. Une fois l’image créée et modifiée via Image (la classe de l’obket-image du module
et PIL), on peut la transformer en ImageTk , la classe-image de Tk, qui sera alors utilisable
Classe Tk dans Tkinter. Il faut utiliser la méthode PhotoImage.
et
Conversion à l’aide de la
méthode PhotoImage from PIL import Image as Img
de la classe ImageTk. from PIL import ImageTk
presentation = [Link]("RGB", (20,20), (255,255,150))
presentationTk = [Link](presentation)

monAffichage = Label(fen_princ, image=presentationTk)


Création d’un objet- [Link]()
Label
Attention : le nom de l’image doit correspondre à une image convertie avec
[Link] () et pas une Image PIL directement.

Modifier l’image qui Si vous voulez afficher une image depuis un objet-image Tk pré-existant, c’est facile :
s’affiche avec une
image préexistante [Link](image = presentationTk_nouvelle)
dans le corps du
programme Bien entendu, presentationTk_nouvelle devra être le nom de la nouvelle image Tk.

Modifier l’image qui


s’affiche avec une
image créée dans une C’est plus compliqué : il faudra attendre les activités suivantes.
fonction liée à un
bouton par exemple

Suppression de la console

Pour supprimer l’ouverture de la console lors de l’exécution d’un programme utilisant tkinter, il suffit de modifier
l’extension du fichier .py en .pyw.

Méthode GEOMETRY

Impose initiale de la Pour créer une fenêtre de 800 pixels de long sur 600 pixels de haut :
fenêtre lors du
lancement fen_princ.geometry("800x600")

Méthode PLACE

Pour placer un Widget à une position de 50 pixels en x et 100 pixels en y :


Permet le placement [Link]( x = 50, y = 100 )
précis des WIDGETS
ATTENTION : Il ne faut pas mélanger les méthodes de placements dans un même
conteneur.

Vous aimerez peut-être aussi