Programmation GUI en Python (Tkinter)
Python fournit plusieurs bibliothèques pour le développement d'interfaces graphiques. Voici plusieurs bibliothèques GUI Python couramment utilisées :
Tkinter:Le module Tkinter (interface Tk) est l'interface vers la boîte à outils GUI Tk standard de Python. Tk et Tkinter peuvent être utilisés sur la plupart des plateformes Unix, et peuvent également être appliqués dans les systèmes Windows et Macintosh. Les versions ultérieures de Tk8.0 peuvent implémenter des styles de fenêtre natifs et fonctionnent bien sur la grande majorité des plateformes.
wxPython:wxPython est un logiciel open source et une excellente bibliothèque graphique GUI pour le langage Python, permettant aux programmeurs Python de créer facilement des interfaces utilisateur GUI complètes et entièrement fonctionnelles.
Jython:Les programmes Jython peuvent être intégrés de manière transparente à Java. À l'exception de certains modules standard, Jython utilise des modules Java. Jython possède presque tous les modules de Python standard qui ne dépendent pas du langage C. Par exemple, l'interface utilisateur de Jython utilisera Swing, AWT ou SWT. Jython peut être compilé dynamiquement ou statiquement en bytecode Java.
Programmation Tkinter
Tkinter est la bibliothèque GUI standard pour Python. Python peut utiliser Tkinter pour créer rapidement des applications GUI.
Comme Tkinter est intégré au package d'installation Python, tant que Python est installé, vous pouvez importer la bibliothèque Tkinter. De plus, IDLE est également écrit en Tkinter, et Tkinter peut toujours gérer facilement des interfaces graphiques simples.
Remarque: Le nom de bibliothèque utilisé dans la version Python3.x est tkinter, c'est-à-dire que la première lettre T est en minuscule.
import tkinter
Créer un programme GUI
- 1. Importer le module Tkinter
- 2. Créer le widget
- 3. Spécifier le maître de ce widget, c'est-à-dire à quel widget celui-ci appartient
- 4. Indiquer au GM (gestionnaire de géométrie) qu'un widget a été créé
Exemple (Python3.x)
Exemple (Python2.x)
Le résultat de l'exécution du code ci-dessus est illustré dans la figure ci-dessous :
Exemple
Le résultat de l'exécution du code ci-dessus est illustré dans la figure ci-dessous :
Widgets Tkinter
Tkinter fournit divers contrôles, tels que des boutons, des étiquettes et des zones de texte, utilisés dans une application GUI. Ces contrôles sont souvent appelés widgets ou composants.
Il y a actuellement 15 widgets Tkinter. Nous présentons ces widgets et une brève introduction dans le tableau suivant :
| Widget | Description |
|---|---|
| Bouton | Widget Button ; affiche un bouton dans le programme. |
| Canvas | Widget Canvas ; affiche des éléments graphiques tels que des lignes ou du texte |
| Checkbutton | Widget Checkbutton ; utilisé pour fournir des cases à choix multiples dans un programme |
| Entry | Widget Entry ; utilisé pour afficher un contenu textuel simple |
| Cadre | Widget Frame ; affiche une zone rectangulaire à l'écran, principalement utilisé comme conteneur |
| Étiquette | Widget Label ; peut afficher du texte et des bitmaps |
| Zone de liste | Widget Listbox ; le widget fenêtre Listbox est utilisé pour afficher une liste de chaînes de caractères à l'utilisateur |
| Menubutton | Widget Menubutton ; utilisé pour afficher des éléments de menu |
| Menu | Widget Menu ; affiche la barre de menus, les menus déroulants et les menus contextuels |
| Message | Widget Message ; utilisé pour afficher du texte multiligne, similaire à Label |
| Bouton radio | Widget Radiobutton ; affiche un état de bouton à sélection unique |
| Échelle | Widget Scale ; affiche une échelle numérique, fournissant un intervalle numérique à plage limitée pour la sortie |
| Scrollbar | Widget Scrollbar ; utilisé lorsque le contenu dépasse la zone visible, comme une listbox. |
| Texte | Widget Text ; utilisé pour afficher du texte multiligne |
| Toplevel | Widget Toplevel ; utilisé pour fournir une boîte de dialogue séparée, similaire à Frame |
| Spinbox | Widget Spinbox ; similaire à Entry, mais peut spécifier une plage de valeurs d'entrée |
| PanedWindow | PanedWindow est un plugin de gestion de disposition de fenêtre qui peut contenir un ou plusieurs widgets enfants. |
| LabelFrame | labelframe est un widget conteneur simple. Souvent utilisé pour des dispositions de fenêtre complexes. |
| tkMessageBox | Utilisé pour afficher une boîte de message pour votre application. |
Attributs standards
Les attributs standards sont les attributs communs à tous les widgets, tels que la taille, la police, la couleur, etc.
| Attribut | Description |
| Dimension | Taille du widget ; |
| Couleur | Couleur du widget; |
| Font | Police du widget; |
| Ancre | Ancrage; |
| Relief | Style du widget; |
| Bitmap | Bitmap; |
| Cursor | Curseur; |
Gestion de la géométrie
Les widgets Tkinter possèdent des méthodes spécifiques de gestion de l'état de la géométrie, gérant l'organisation de toute la zone du widget. Voici les classes de gestion de la géométrie exposées par Tkinter : pack, grid, place
| Méthode de géométrie | Description |
| pack() | Pack; |
| grid() | Grid; |
| place() | Place; |