PARADIGMES DE PROGRAMMATION
DIPLÔME DE FORMATION D’INGÉNIEURS EN INFORMATIQUE (FI-A1)
Module 8
Mondher Bouden
2024-2025
Programmation événementielle
Objectifs et caractéristiques
• Apprendre à utiliser et prototyper rapidement une
application graphique en Python.
• Pour cela, nous allons voir les bases de la
programmation événementielle.
• En programmation événementielle, on répond à des
événements :
– Clics et déplacements de souris.
– Touches de clavier.
– Redimensionnement de fenêtre.
– Etc.
• Le déroulement du programme est entièrement
déterminé par la séquence des événements.
Séquentielle vs Événementielle
Contrôles - widgets
• Un widget (window gadget) est un élément d'interface
permettant une interaction avec l'utilisateur.
Les événements
• L'utilisateur interagit avec un widget :
– par exemple, il clique sur un bouton.
– le bouton appelle une fonction spécifiée par le programmeur.
– cette fonction s'appelle un callback.
• Leur traitement se fait généralement de manière
automatique :
– le système accumule les événements dans une file d'attente.
– les événements sont transmis aux widgets.
– chaque widget appelle la fonction callback définie par le
programmeur.
Les interfaces
• Une interface est définie par une hiérarchie de
widgets à l'intérieur d'une fenêtre.
• Des mécanismes permettent de positionner les
widgets les uns par rapport aux autres.
– les widgets ont habituellement une dimension « naturelle »
– ces mécanismes permettent de spécifier l'agencement des
widgets dans la fenêtre et comment cet agencement doit
changer lorsqu'on change la dimension de la fenêtre.
Les interfaces
• Le TopLevel correspond à une
fenêtre de l'écran.
• Un frame est une région
rectangulaire qui contient
plusieurs autres composants.
• Les feuilles de la hiérarchie sont
des contrôles.
Les interfaces graphiques en Python : tkinter
• Ce module est une interface Python sur la librairie Tcl/Tk.
– tkinter signifie « Tk interface ».
– Tk veut dire « Toolkit » (boite à outils).
– Tcl signifie « Tool command language ».
• Il permet de faire des interfaces graphiques en Python.
– Le programme fonctionne sur toutes les plateformes.
– Tkinter est un module de base intégré dans Python. Vous n'avez
donc normalement pas besoin de l’installer.
• Liens utiles:
– [Link]/page-tkinter-interface-graphique-python-tutoriel
– [Link]/fr/3/library/[Link]
– [Link]/app/teachpyx/helpsphinx/c_gui/[Link]
Création d’une fenêtre graphique
Hello World !
fg='yellow’,
bg='blue'
Création d’un bouton
Ajout d’un titre + méthode grid()
Création d’un frame
relief='groove’,
borderwidth=10
Autres Widgets
• Entry
• Radiobutton
• Combobox
• Canvas
• ListBox
• Menu
• Scrollbar
• Spinbox
• Messagebox
• Etc.
[Link]
Programmation événementielle + POO
• La POO est inévitable dans le développement des
applications.
• Il est donc préférable d’utiliser des classes pour créer des
interfaces graphique.
Programmation événementielle + POO
Écouter les événements : la méthode bind()
• Lorsque l'utilisateur interagit avec les widgets d'une
fenêtre, des événements sont déclenchés dans tkinter.
• Nous pouvons lier ces événements à des fonctions ou
méthodes à l'aide de la méthode bind(), disponible pour
tous les widgets.
• Par exemple, nous pourrions lier une touche de clavier
spécifique dans une boîte d'entrée Entry. Lorsque
l'utilisateur aura mis le focus sur ce widget et aura pressé
sur cette touche, tkinter appellera la fonction spécifiée.
Écouter les événements : la méthode bind()
• Exemple: Utiliser bind() pour lier les événements de clics et de
déplacements de la souris au dessin dans un Canvas.
Écouter les événements : la méthode bind()