1. A propos de la bibliothèque Tkinter
Tkinter est une bibliothèque d'interface utilisateur graphique (GUI) open source et portable conçue pour être utilisée dans les scripts Python. Tkinter s'appuie sur la bibliothèque Tk, la bibliothèque graphique utilisée par Tcl/Tk et Perl, qui est à son tour implémentée en C. Par conséquent, on peut dire que Tkinter est implémenté en utilisant plusieurs couches. Plusieurs kits d'outils GUI concurrents sont disponibles pour être utilisés avec le langage Python, à savoir :
- wxPython: une extension wrapper pour wxWindows, une bibliothèque d'interface graphique portable développée à l'origine pour le langage C++. Il s'agit de la deuxième boîte à outils d'interface graphique la plus populaire pour Python, car elle est considérée comme excellente pour la conception d'interfaces complexes.
- JPython (Jython): depuis qu'il est implémenté en java, JPython a accès aux bibliothèques Java GUI, à savoir SWING et AWT. Récemment, JTkinter a été implémenté et fournit un port Tkinter à JPython en utilisant l'interface native Java (JNI).
- PyKDE/PyQt, PyGTK: ces packages fournissent un accès aux bibliothèques KDE et Gnome GUI pour les scripts python.
- Win32all: permet d'accéder aux Microsoft Foundation Classes (MFC) aux scripts python. Il est limité à fonctionner sur MS Windows uniquement.
- WPY: une bibliothèque graphique qui peut être utilisée à la fois sur Microsoft Windows et UNIX X Windows. Cette bibliothèque utilise le style de codage MFC.
- PySide: est une liaison Python de la boîte à outils d'interface graphique multiplateforme Qt développée par The Qt Company, dans le cadre du projet Qt for Python. C'est l'une des alternatives au package de bibliothèque standard Tkinter. Comme Qt, PySide est un logiciel libre. PySide prend en charge Linux/X11, macOS et Microsoft Windows.
2. Avantages de Tkinter
2.1 Approche en couches
L'approche en couches utilisée dans la conception de Tkinter donne à Tkinter tous les avantages de la bibliothèque TK. Par conséquent, au moment de la création, Tkinter a hérité des avantages d'une boîte à outils graphique qui avait eu le temps de mûrir. Cela rend les premières versions de Tkinter beaucoup plus stables et fiables que si elles avaient été réécrites à partir de zéro. De plus, la conversion de Tcl/Tk vers Tkinter est vraiment triviale, de sorte que les programmeurs Tk peuvent apprendre à utiliser Tkinter très facilement.
2.2 Accessibilité
L'apprentissage de Tkinter est très intuitif, donc rapide et indolore. L'implémentation de Tkinter masque les appels détaillés et compliqués dans des méthodes simples et intuitives. Il s'agit d'une continuation de la façon de penser de Python, car le langage excelle dans la construction rapide de prototypes. Il est donc prévu que sa bibliothèque GUI préférée soit implémentée en utilisant la même approche. Par exemple, voici le code d'une application type "Hello world" :
1 2 3 4 |
from Tkinter import * root = Tk( ) root.title("Exemple de fenêtre Tkinter") root.mainloop( ) |
Les 2 premières lignes permettent de créer une fenêtre complète. Comparé à la programmation MFC, il ne fait aucun doute que Tkinter est simple à utiliser. La troisième ligne définit le libellé de la fenêtre, et la quatrième la fait entrer dans sa boucle d'événement.
2.3 Portabilité
Les scripts Python qui utilisent Tkinter ne nécessitent pas de modifications pour être portés d'une plate-forme à l'autre. Tkinter est disponible pour toutes les plates-formes pour lesquelles Python est implémenté, à savoir Microsoft Windows, X Windows et Macintosh. Cela lui donne un grand avantage sur la plupart des bibliothèques concurrentes, qui sont souvent limitées à une ou deux plates-formes. De plus, Tkinter fournira l'apparence native de la plate-forme spécifique sur laquelle il s'exécute.
2.4 Disponibilité
Tkinter est désormais inclus dans toutes les distributions Python. Par conséquent, aucun module supplémentaire n'est requis pour exécuter des scripts à l'aide de Tkinter.
3. Inconvénients de Tkinter
L'approche multicouche adoptée dans la conception de Tkinter peut présenter certains inconvénients en ce qui concerne la vitesse d'exécution. Bien que cela puisse constituer un problème avec les machines plus anciennes et plus lentes, la plupart des ordinateurs modernes sont suffisamment rapides pour faire face au traitement supplémentaire dans un délai raisonnable. Lorsque la vitesse est critique, des précautions doivent être prises afin d'écrire un code aussi efficace que possible.
4. les widgets Tkinter
La bibliothèque d'interface graphique Python Tkinter nous offre une large variétés de contrôles: des boutons, des étiquettes et des zones de texte permettant de développer des application d'interface graphique efficaces et performantes. Ces contrôles sont communément appelés widgets.
Il existe actuellement plusieurs types de widgets dans Tkinter. Nous présentons ici les noms des principaux widgets ainsi qu'une brève description:
1. Button : le widget Button permet de créer des boutons pour votre application.
2. Canva: le widget Canva permet de dessiner des formes, telles que des lignes, des ovales, des polygones et des rectangles, dans votre application.
3. Checkbutton: le widget Checkbutton permet d’afficher un certain nombre d’options sous forme de cases à cocher. L'utilisateur peut sélectionner plusieurs options à la fois.
4. Entry: le widget Entry est utilisé pour afficher un champ de texte d'une seule ligne permettant d'accepter les valeurs d'un utilisateur.
5. Frame: le widget Frame (cadre) est utilisé en tant que widget conteneur pour organiser d'autres widgets.
6. Label: le widget Label est utilisé pour fournir une légende ou description pour les autres widgets. Il peut aussi contenir des images.
7. Listbox: le widget Listbox est utilisé pour fournir une liste d'options à un utilisateur.
8. menubutton: le widget menubutton est utilisé pour afficher les menus dans votre application.
9. Menu: le widget Menu est utilisé pour fournir diverses commandes à un utilisateur. Ces commandes sont contenues dans Menubutton.
10. messagebox: le widget Message est utilisé pour afficher des champs de texte multilignes permettant d'accepter les valeurs d'un utilisateur.
11. Radiobutton: le widget Radiobutton est utilisé pour afficher un certain nombre d'options sous forme de boutons radio. L'utilisateur ne peut sélectionner qu'une option à la fois.
12. Scale: le widget Echelle est utilisé pour fournir un widget à curseur.
13. Scrollbar: le widget Scrollbar ou barre de défilement est utilisé pour ajouter une fonctionnalité de défilement à divers widgets, tels que les zones de liste.
14. Text: le widget Text est utilisé pour afficher du texte sur plusieurs lignes.
15. Toplevel: le widget Toplevel est utilisé pour fournir un conteneur de fenêtre séparé.
16. Spinbox: le widget Spinbox est une variante du widget standard Tkinter Entry, qui peut être utilisé pour sélectionner un nombre fixe de valeurs.
17. PanedWindow: le widget PanedWindow est un conteneur pouvant contenir un nombre quelconque de volets, disposés horizontalement ou verticalement.
18. LabelFrame: un labelframe est un simple widget de conteneur. Son objectif principal est d'agir comme un intercalaire ou un conteneur pour les dispositions de fenêtre complexes.
19. tkMessageBox: ce module est utilisé pour afficher des boîtes de message dans vos applications.
Younes Derfoufi
CRMEF OUJDA
2 thoughts on “La bibliothèque GUI Python Tkinter”