Notion d’application graphique et Python
Notion d’application graphique et Python
-
Objectifs
- Connaitre les notions d’applications graphiques
- Etre capable de différencier les applications graphiques adéquate à Python
-
Présentation
-
Définitions
- Une interface graphique c’est dispositif destiné à permettre les interactions ente un programme et un utilisateur, il présente des informations visuelles et reçoit des messages via une souris ou autre pointeur
- Une application graphique est une application qui est exécutée dans une unité d’interface graphique (GUI, pour Graphic User Interface).
- Les GUI les plus connus sur le PC sont Windows (système Microsoft) et X11 (système Linux).
- Un logiciel graphique se présente sous forme de composants graphiques fenêtrés, et il dispose d’un outil de pointage (la souris) qui permet assez souvent de ne pas utiliser la commande par le clavier.
- Par ailleurs, la gestion du logiciel se fait par événements, et non selon un déroulement séquentiel impératif comme dans les logiciels classiques.
- Une interface graphique est constituée de composants, ou objets , ou contrôles, ou encore widgets qui sont la source d’événements.
- Les composants ou widgets : ce sont des boutons, zones de saisie, zones de dessin, labels, listes déroulantes, boîtes à cocher, bouton radio …
-
Pourquoi faire?
- Plusieurs raisons pour écrire des programmes graphiques :
- utilisation agréable
- résultats plus immédiatement parlants
- mise en évidence de l’effet d’un paramètre,…
- accessible aux personnes peu familières avec les ordinateurs
- Mais aussi des inconvénients :
- répétition d’une même séquence d’actions
- apprentissage peu générique
- difficile à adapter à un besoin particulier
-
Architecture et métaphore du bureau
-
Architecture d’un programme graphique
- Au lancement du programme :
- construction de l’interface
- boucle d’attente
- Dans la boucle :
- chaque action de l’utilisateur appelle une fonction
- réglage d’un paramètre (valeur,choix binaire/multiple,…)
- lecture de données(fichier,réseau,capteur,…)
- traitement(calculs,…)
- écriture de résultats(fichier,réseau,affichage,…)
- une fonction appelée peut modifier l’affichage
- une fonction permet de quitter le programme
-
La métaphore du bureau
- L’interface graphique utilise la métaphore du bureau : des pages empilées ou se chevauchant ; des piles de documents (pages) distribuées sur un bureau ;
- Le dessus d’une des piles est la page active, page sur laquelle on travaille ;
- Les pages peuvent être réunies en dossier ou en systèmes à onglets (notebook) ; des systèmes de classement par listes, répertoires etc.
- Ce type de métaphore qui paraît si naturelle aujourd’hui n’est cependant pas si évident qu’il y paraît.
- Les tablettes filent une autre métaphore, plus proche de celle de livres issus d’une bibliothèque : on tourne les pages, on glisse d’une partie du document à une autre, on choisit son application dans une bibliothèque d’applications indépendantes…
-
Éléments d’une interface graphique
-
Le cas de Python
- Python comporte plusieurs version : CPython, le Python classique, Jython, écrit en Java, IronPython etc. Jython qui fonctionne sous Java peut utiliser les capacités graphiques de Java (awt, swing).
- Plusieurs librairies (modules) en python sont disponibles pour réaliser des interfaces graphiques :
- Écrit en Tcl. Comporte tous les essentiels. Inclus le système Python.
- Utilisé aussi par Perl, Ruby. Existe en version Python 3. Exploite peu le système hôte.
- tkinter (python version 3) Tkinter (version 2)
-
tkinter
n’est pas le plus puissant ni me plus beau. Mais il a l’avantage d’être présent dans le système Python, ce qui aide à la diffusion des programmes. Il est aussi le plus simple, et son intérêt pédagogique est évident.
Logo | librairie | wrapper | commentaire |
---|---|---|---|
tk | tkinter |
|
|
wxWidget | wxPython | Bibliothèque plus riche que tkinter. Exploite au maximum le système hôte (Windows, Linux…). Les applications on le look du système hôte. |
|
Gtk | PyGtk | Comparable à tk ou wxWidget. Peut être programmé avec le logiciel Glade (dont il existe une version pour wxPython). |
|
Qt | PyQt | Pyside Développé en C++. À la base de KDE sous Linux. C’est la cour de grands ! Programmation assez spécifique. |