interfaces graphiques dans Python 3
utilisation de Tkinter

interfaces graphiques pour Python 3

Quelles sont les possibilités pour développer une application avec une interface graphique (avec gestion par événement) sous Python, spécialement avec la suite des versions 3.x ?

1. tkinter : Python a adapté le module tk (tkinter) écrit dans le langage tcl et en a fait un standard de fait : tk/tknter est intégré dans la distribution du langage. Le module est réduit à l'essentiel (on peut lui adjoindre des compléments) pour créer des interfaces graphiques indépendantes du système d'exploitation. Sa simplicité en fait un excellent outil pédagique. D'un point de vue développement, il est bien adapté pour les applications multi-plateformes, qui ne nécessitent pas une présentation graphique sophistiquée.

2. wxPython : le module issu de wxWidget écrit en C est téléchargeable. Cette interface est la plus utilisée dans le monde Python, en particulier dans celui du logiciel libre. Elle adapte autant que faire se peut le style de l'environnement graphique du S.E. Son approche est assez aisée ; malheureusement, le virage de la version 3 de Python n'a pas été négocié...

3. PyQt : il s'agit de l'interface Qt développée avec et pour le C++. C'est l'interface la plus complète, mais aussi la plus «technique». Des outils de développement permettent une utilisation très professionnel. L'interface KDE a été développée avec QT. Le logiciel calibre est écrit en Python avec Qt.

ateliers d'initialisation à tkinter

Les dossiers sur tkinter ont été rédigés dans des circonstances diverses et n'ont pas tous le même objectif.

* les premiers dossiers ont été conçus pour l'initiation. Ils visent d'abord à disposer d'un petit aise-mémoire de travail, et à éviter quelques écueils.

* le dossier 5, avec l'étude du jeu de Ping a été conçus pour metttre en jeu une interface graphique en vraie grandeur.

* le dossier 6 a été rédigé pour les Journées de Caen (2010), lors de la réponse à une question du Chalenge. Il y avait la volonté de développer un petit logiciel, sans esquiver la partie analyse. La tonalité est différente de celle des autres dossiers.

téléchargements

 format LibreOffice (1 Mio)  format P.D.F. (1 Mio)

références de tkinter

La documentation en français est restreinte. Les tutoriels traitent tous plus ou moins des mêmes sujets et avec un bonheur à relativiser.
La documentation de référence n'existe en pratique qu'en anglais. Le passage obligé pour Python est "An Introduction to Tkinter" de Frederik Lundth. Cette documentation date de 1999, et nécessite quelques adaptations. On trouve en http://effbot.org/tkinterbook/ la version la plus récente, qui reste incomplète.
Il existe une documentation de John W. Shipman pour les étudiants de l'Université du Nouveau Mexique. Elle répond bien à son objet -une référence pour des étudiants-, elle est fiable mais reste lacunaire. S'en tenir à la version originale, en anglais.
Bien entendu, il reste la possibilité d'utiliser la documentation interne, engendrée par pydoc3. Le plus simple est de lancer dans une console :
  pydoc3 -w tkinter
  pydoc3 -w tkinter.tix


L'objectif est de réaliser un document en français des références de tkinter, aussi exhaustif que possible, mais pratique pour le programmeur non spécialiste. Si on compare à une approche telle que celle de Lundh, nous inclurons davantage d'explication et d'exemples.
L'adaptation française d'une référence pose le problèmes du vocabulaire à employer. Certaines appellations française sont sans problèmes, comme module, importer, variable, fonction, méthode, classe, canevas, option. Ils sont un équivalent du mot anglais. Mais assez souvent, plutôt qu'un mot aussi général que option, on préfère attribut. Le mot texte traduisant text désigne une séquence de caractères ; manager devient gestionnaire, event devient événement. Mais event handler devient plus clairement un gestionnaire d'événement...

téléchargements

 format LibreOffice (1 Mio)  format P.D.F. (1 Mio)