OVH Cloud OVH Cloud

Question sur les GUI

2 réponses
Avatar
H.
Bonsoir.

Petites questions... Pour l'instant, je commence à maîtriser tout
doucement le module Tkinter, et à faire quelques applis graphiques.
Je n'ai pas réussi à trouver sur internet (developpez.com, notamment) de
la doc exhaustive en français sur ce module (ensemble des instructions et
ensemble des paramètres). Notamment, pas grand chose (rien !) sur la méthode
place(). Donc si quelqu'un a une doc pertinente...

Ensuite, j'ai une appli à développer, et le mieux serait d'intégrer un
système d'onglets. Je n'ai rien trouvé dans Tkinter qui puisse faire ça,
donc il me semble que ce n'est pas possible.
Une solution reste de mettre des boutons en haut, et de les associer à
un affichage de frame dans la partie inférieure. Mais je ne sais pas quelle
*structure* adopter pour mon programme : est-ce que je dois associer les
frames à des classes ? A des procédures ? Est-ce que je dois mettre la
fenêtre principale dans une classe ou une procédure ? Bref, quel est le
meilleur choix ?

Sinon, c'est peut-être futile, mais j'apprécierais pouvoir donner le
look XP à cette appli (boutons arrondis, bleutés, etc.). Est-ce possible à
partir de Tkinter ?
Sinon vers quoi dois-je m'orienter pour avoir plus de widgets
disponibles et plus de possibilités graphiques (sans que ce soit trop
complexe) ?


Cordialement,
Christophe

2 réponses

Avatar
Jacques Pronchery
Bonsoir.

Petites questions... Pour l'instant, je commence à maîtriser tout
doucement le module Tkinter, et à faire quelques applis graphiques.
Je n'ai pas réussi à trouver sur internet (developpez.com, notamment) de
la doc exhaustive en français sur ce module (ensemble des instructions et
ensemble des paramètres). Notamment, pas grand chose (rien !) sur la méthode
place(). Donc si quelqu'un a une doc pertinente...

Ensuite, j'ai une appli à développer, et le mieux serait d'intégrer un
système d'onglets. Je n'ai rien trouvé dans Tkinter qui puisse faire ça,
donc il me semble que ce n'est pas possible.
Une solution reste de mettre des boutons en haut, et de les associer à
un affichage de frame dans la partie inférieure. Mais je ne sais pas quelle
*structure* adopter pour mon programme : est-ce que je dois associer les
frames à des classes ? A des procédures ? Est-ce que je dois mettre la
fenêtre principale dans une classe ou une procédure ? Bref, quel est le
meilleur choix ?

Sinon, c'est peut-être futile, mais j'apprécierais pouvoir donner le
look XP à cette appli (boutons arrondis, bleutés, etc.). Est-ce possible à
partir de Tkinter ?
Sinon vers quoi dois-je m'orienter pour avoir plus de widgets
disponibles et plus de possibilités graphiques (sans que ce soit trop
complexe) ?


Cordialement,
Christophe


Bonjour,


Pour la doc sur Tkinter c'est un peu difficile, mais tu peux aller voir :

http://effbot.org/tkinterbook/
http://www.univ-pau.fr/~bruel/Enseignements/TER/InterfacePython/tutoriel_tkinter.html
http://www.pythonware.com/library/tkinter/introduction/

Jacques.

Avatar
Mickaël k.
H. wrote:
Bonsoir.


Salut

Petites questions... Pour l'instant, je commence à maîtriser tout
doucement le module Tkinter, et à faire quelques applis graphiques.
Je n'ai pas réussi à trouver sur internet (developpez.com, notamm ent) de
la doc exhaustive en français sur ce module (ensemble des instructions et
ensemble des paramètres). Notamment, pas grand chose (rien !) sur la m éthode
place(). Donc si quelqu'un a une doc pertinente...


Le module Tkinter est en fait un binding de la bibliothèque graphique
Tk, initialement écrite pour le langage TCL (www.tcl.tk) , tu
trouveras donc beaucoup plus de documentation de ce côté, seul la
syntaxe risque de te géner un peu...

Ensuite, j'ai une appli à développer, et le mieux serait d'inté grer un
système d'onglets. Je n'ai rien trouvé dans Tkinter qui puisse faire ça,
donc il me semble que ce n'est pas possible.
Une solution reste de mettre des boutons en haut, et de les associer à
un affichage de frame dans la partie inférieure. Mais je ne sais pas qu elle
*structure* adopter pour mon programme : est-ce que je dois associer les
frames à des classes ? A des procédures ? Est-ce que je dois mettre la
fenêtre principale dans une classe ou une procédure ? Bref, quel est le
meilleur choix ?


La bibliothèque pybwidget (une adaptation de BWidget pour TCL) rajoute
un bon nombre de contrôles
(http://tkinter.unpythonic.net/bwidget/BWman/) , notamment le
"NoteBook" qui correspond parfaitement au système d'onglet que tu
demandes.

Sinon, c'est peut-être futile, mais j'apprécierais pouvoir donner le
look XP à cette appli (boutons arrondis, bleutés, etc.). Est-ce possi ble à
partir de Tkinter ?


Tkinter tout seul ne le permet pas, mais là encore, il existe la
bibliothèque Tile qui donne accés à différents looks (le natif par
défaut).
Parcontre seul le look sera semblable, et les contrôles ne seront pas
ceux de l'API win32.

Je ne sais pas si Tile existe pour python, mais je suis tombé sur un
moyen (pas trés propre à mon gout) de l'utiliser :
http://tkinter.unpythonic.net/wiki/UsingTile
Je te laisse appronfondir les recherches ;)

Sinon vers quoi dois-je m'orienter pour avoir plus de widgets
disponibles et plus de possibilités graphiques (sans que ce soit trop
complexe) ?


Il y'a différents moyens d'étendre Tkinter, les plus connus sont
probablement ceux présentés sur
http://python.developpez.com/outils/Librairies/.

Sinon, je dirais wxPython, qui permet d'utiliser la bibliothèque C++
wxWidgets, avec un look et une multitude de contrôles natifs.


En espérant avoir pu t'aider,
Mickaël