Programmation » [Python] Une belle lib pour un GUI ?
Catégorie:  
   
[Python] Une belle lib pour un GUI ?
Publié le 10/11/2010 @ 17:06:13,
Par blietaer
Bonjour,

Je dois faire un rapide petit GUI en Python. :tongue:

Seule critère: rendre le bazard le + portable d'une distro à l'autre :kiki:
Donc, merci Python, simplement mettre tous mes 'import' dans le même répertoire et ne pas dépendre/espérer des lib-python pre-installée(s) chez le client. :chut:

J'ai un peu effleuré le pyQt, tk, wxpython...
Ils ont tous leur avantage et inconvénient.

J'en ai un peu marre des Tk hideux (bcp joué sous Tcl/Tk) et quite à apprendre un nouveau truc, pq pas qqchose de moins moche? :itm:

Je me fais confiance ainsi qu'à Python pour rentrer facilement dans n'importe laquelle...
(à moins que les APIs soient vraiment codées avec des moufles...)

votre coup de coeur?
:tinostar:
Et au besoin s'arrêter.
   
[Python] Une belle lib pour un GUI ?
Publié le 10/11/2010 @ 23:36:31,
Par ovh
wxPython powa :oh:

Tu peux même utiliser wxglade pour générer le squelette de l'interface.

Dernière édition: 10/11/2010 @ 23:37:41
Je n'ai rien à voir avec www.ovh.com
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 10:07:24,
Par philfr
Tkinter pour la portabilité, c'est pas très beau en effet mais c'est partout.

-1 pour ovh, je suis complètement revenu de wxwindows/wkwidgets/wxpython.

Par contre, PyQt avec Eric comme IDE qui intègre l'utilisation de Qtdesigner, c'est trop bien.
Un petit tutoriel pour écrire un web browser en quelques clics avec ERic/PyQt/Qwebkit...
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 11:57:06,
Par blietaer
Merci pour vos réponses.

Malgré ma remarque sur la facilité de rentrer dans le code, je dois avouer que tous les WXqqchose m'ont tjrs rebuté.... :spamafote:

Phil> tu sembles sortir ici l'artilerie lourde: est-ce que cela reste "portable" dans le sens où je l'entendais plus haut ou bien je dois faire tourner le résultat sur une machine qui a obligatoirement déjà du Qt/KDE uniquement? ou bien je dois trimballer 2Mo de lib? :sad:

Je fais le tuto et je me fais une idée... :huit:
Et au besoin s'arrêter.
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 12:05:41,
Par philfr
blietaer> à part Tkinter qui est installé à peu près par défaut lors d'une install Python sur Windows, tu devras toujours installer une des libs GTK/Qt/Wx en plus.
Et à ma connaissance, pour Qt un seul installer t'installera tout ce qu'il faut.
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 15:14:44,
Par ovh
-1 pour ovh, je suis complètement revenu de wxwindows/wkwidgets/wxpython.

Par contre, PyQt avec Eric comme IDE qui intègre l'utilisation de Qtdesigner, c'est trop bien.
Un petit tutoriel pour écrire un web browser en quelques clics avec ERic/PyQt/Qwebkit...

Je suis ouvert et prêt à changer, surtout que ton avis a grande valeur à mes yeux, mais pourrais-tu nous dresser un rapide comparatif, les + et les - des 2 libs ? :write: :dawa: Je ne connais que wx j'avoue :cupra: Quelques questions me viennent à l'esprit d'emblée : PyQT est-il aussi complet ? Utilise-t-il aussi les composants graphiques natifs quand ils existent ou introduit-il une surcouche pour tout, comme java ?
Qu'est-ce qui t'a fait revenir de wx ?

Dernière édition: 11/11/2010 @ 15:17:32
Je n'ai rien à voir avec www.ovh.com
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 15:17:50,
Par rfr

Je suis ouvert et prêt à changer, surtout que ton avis a grande valeur à mes yeux, mais pourrais-tu nous dresser un rapide comparatif, les + et les - des 2 libs ? :write: :dawa: Je ne connais que wx j'avoue :cupra: Deux questions me viennent à l'esprit d'emblée : PyQT est-il aussi complet ? Utilise-t-il aussi les composants graphiques natifs quand ils existent ou introduit-il une surcouche pour tout, comme javaSwing ?
To die is a time consuming activity, it often takes a lifetime (but some are faster than others ... though)
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 15:21:40,
Par ovh
rfr> :joce: (me doutais qu'un java lover allait intervenir :tinostar: )
Je n'ai rien à voir avec www.ovh.com
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 15:53:58,
Par rfr
rfr> :joce: (me doutais qu'un java lover allait intervenir :tinostar: )


Rien à voir avec un java lover, c'est simplement que ce que tu dis est incorrect :oh:
To die is a time consuming activity, it often takes a lifetime (but some are faster than others ... though)
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 15:54:48,
Par philfr
Ben mon avis n'est sans doute pas d'une si grande valeur en l'occurence, parce que mon expérience en développement GUI est assez limitée...
J'ai donc toujours cherché quelque chose de facile, et utilisable une fois par an sans devoir chaque fois tout réapprendre. Pour ça en fait Tkinter est plutôt pas mal, d'autant plus qu'on peut l'utiliser de façon interactive et voir les widgets apparaître au fur et à mesure qu'on les crée.

J'ai toujours trouvé les trucs basé sur glade super lourds. Ce n'est jamais qu'une couche de plus au-dessus d'un toolkit (wx ou gtk), et comme avec toutes les couches, on perd un peu de contrôle, un peu de flexibitlité et pas mal de perfs au démarrage.
Et comme wxdesigner n'est pas libre, on est obligé d'utiliser wxglade ou de se passer de designer.

L'argument qui dit que Wx est natif sur windows ne tient pas face à Tkinter qui utilise aussi depuis longtemps les widgets natifs. Qt a (je crois) la volonté d'un look and feel identique sur toutes les plateformes et suit donc l'approche opposée.
Et puis j'ai l'impression que de plus en plus d'applis windows n'utilisent plus les widgets windows pour se distinguer et avoir leur propre look... (Sans parler du fait que les widgets natifs windows ont des comportements incohérents, mais c'est un autre débat)

Alors, quelque trucs qui me passent par la tête:
- Qt est très complet, sans doute pas moins que Wx (mais je manque d'expérience approfondie pour en mettre ma main à couper)
- PyQt reprend les concepts gagnants de Qt (signals/slots, ...)
- Qtdesigner est libre, wxdesigner ne l'est pas (ah, je l'avais déjà dit ?) et wxglade n'est pas une alternative à mon sens
- PyQt + Eric + Qtdesigner est un trio gagnant qui me permet d'écrire une petite appli en deux temps trois mouvements, cela a toujours été plus laborieux (pour moi) avec Wxpython (avec ou sans wxglade)
- Qt est devenu le toolkit standard de Maemo (qui tourne sur mon Nokia), j'aurai donc nettement moins à apprendre quand j'aurai le temps d'écrire une appli pour mon smartphone
- j'aime bien le look de Qt

Mais ce n'est que mon avis, je ne suis pas prêt à troller pour ça...
:wink:
   
[Python] Une belle lib pour un GUI ?
Publié le 11/11/2010 @ 23:31:09,
Par didix
Obligé que ce soit en Python ?
Sans lancer de troll, Rebol me semble pas mal pour des applis portables avec gui, et pas trop lourdes.
Enfin je dis ça je dis rien :wink:
   
[Python] Une belle lib pour un GUI ?
Publié le 12/11/2010 @ 10:23:45,
Par blietaer
   
[Python] Une belle lib pour un GUI ?
Publié le 12/11/2010 @ 10:37:02,
Par philfr
Et ton choix sera donc ?
   
[Python] Une belle lib pour un GUI ?
Publié le 12/11/2010 @ 10:53:17,
Par blietaer
On va commencer par faire deux mini appli à la con ( un bouton, un textarea et un radiobutton) dans les deux libs, et puis on va les balader sur d'autres distros pour voir laquelle est la plus "portable" (dans notre définition de nouveau)...
Et au besoin s'arrêter.
   
[Python] Une belle lib pour un GUI ?
Publié le 12/11/2010 @ 13:48:09,
Par ovh
http://fr.wikibooks.org/wiki/PyQt/PyQt_versus_wxPython

Extrait :
À l'inverse de wxWidgets qui n'est qu'une librairie d'interface, Qt propose un ensemble de classes autre que la gestion d'interfaces.

C'est entièrement faux ! wx aussi dispose de classes pour le réseau, les DB, etc.
http://docs.wxwidgets.org/stable/wx_classesbycat.html#classesbycat

Ceci dit je me suis un peu renseigné sur pyqt hier, ça a l'air pas mal effectivement, surtout leur designer, puisqu'effectivement là en wx on n'a rien d'autre que wxglade en libre, qui fait son boulot mais est un peu vieillot.
Je n'ai rien à voir avec www.ovh.com
   
[Python] Une belle lib pour un GUI ?
Publié le 09/12/2010 @ 11:21:31,
Par blietaer
Bon ben oui.
wxPython Powa.
C'est beau ET rapide.

Tiens, je fais une petite appli wxPython qui passe son temps, quand on clicke dessus, à lancer des brols en "xterm -hold -e %s", '%s' pouvant être du ssh (pexpect), du ping, ...
Bref une petite appli de monitoring.

Je garde une trace (visible, dans un beau tableau/list) de tous ce qui a été lancé, avec le PID pour le killer plus tard.

MAIS, ce qui serait chouette, c'est de pouvoir 'soulever' (bring to front) une fenetre quand on selectionne son PID dans la fenêtre...

C'est un peu ambigu: parce-que ce n'est _PAS_ une fenêtre wxPython mais un 'bête' xterm... c'est donc plutôt une commande X11 ?
Cela n'est pas (trop) dépendant du win manager? moyen de faire un truc générique?
Je sais même pas quoi googler en fait?! :sad:
Et au besoin s'arrêter.
   
[Python] Une belle lib pour un GUI ?
Publié le 09/12/2010 @ 11:36:00,
Par ovh
Marrant, dans mon appli wxPython j'ai justement implémenté un truc du genre l'autre jour. Moi aussi je dois lancer un programme externe (aussi en console), je fais ça dans un thread et j'affiche sa sortie dans un textCtrl. J'avais trouvé mon bonheur sur stackoverflow (comme souvent) :
http://stackoverflow.com/questions/879511/wxpython-execute-command-asynchronously-display-stdout-in-text-widget
Par contre c'est pas encore tout à fait au point dans mon cas, mais je dev ça chez moi à la petite semaine :tinostar:

Dernière édition: 09/12/2010 @ 11:39:02
Je n'ai rien à voir avec www.ovh.com
   
[Python] Une belle lib pour un GUI ?
Publié le 09/12/2010 @ 12:14:26,
Par philfr
Bon ben oui.
wxPython Powa.
C'est beau ET rapide.


Avec glade donc ?


MAIS, ce qui serait chouette, c'est de pouvoir 'soulever' (bring to front) une fenetre quand on selectionne son PID dans la fenêtre...

C'est un peu ambigu: parce-que ce n'est _PAS_ une fenêtre wxPython mais un 'bête' xterm... c'est donc plutôt une commande X11 ?
Cela n'est pas (trop) dépendant du win manager? moyen de faire un truc générique?
Je sais même pas quoi googler en fait?! :sad:


Lowlevel, c'est le window manager X avec lequel tu dois communiquer: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2551694

Plus high-level, il doit avoir moyen avec D-Bus, ça te donne une piste à googler.
   
[Python] Une belle lib pour un GUI ?
Publié le 09/12/2010 @ 13:54:33,
Par ovh
Juste pour rebondir sur :
J'ai toujours trouvé les trucs basé sur glade super lourds. Ce n'est jamais qu'une couche de plus au-dessus d'un toolkit (wx ou gtk), et comme avec toutes les couches, on perd un peu de contrôle, un peu de flexibitlité et pas mal de perfs au démarrage.


Je ne comprends pas bien ton histoire de surcouche. :figti:
Je ne connais pas glade (à part de nom), mais wxGlade n'est pas du tout basé sur le code de glade. Il ne fait que générer le code source de mise en page de l'IHM en utilisant les classes de wxPython (ou wxWidgets car il peut générer le code aussi bien en C++ qu'en python), rien de plus, donc aucune surcouche.
wxGlade is a GUI designer written in Python with the popular GUI toolkit wxPython, that helps you create wxWidgets/wxPython user interfaces. At the moment it can generate Python, C++, Perl, Lisp and XRC (wxWidgets' XML resources) code.

As you can guess by the name, its model is Glade, the famous GTK+/GNOME GUI builder, with which wxGlade shares the philosophy and the look & feel (but not a line of code).

It is not (and will never be) a full featured IDE, but simply a "designer": the generated code does nothing apart from displaying the created widgets. If you are looking for a complete IDE, maybe Boa Constructor, PythonCard or Spe(which includes wxGlade itself, BTW...) is the right tool.

Extrait de :
http://wxglade.sourceforge.net/
Je n'ai rien à voir avec www.ovh.com
   
[Python] Une belle lib pour un GUI ?
Publié le 09/12/2010 @ 14:03:35,
Par blietaer
Avec glade donc ?

Non, gVim. :petrus:
(NetBeans pour être complet)


Lowlevel, c'est le window manager X avec lequel tu dois communiquer: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2551694
Plus high-level, il doit avoir moyen avec D-Bus, ça te donne une piste à googler.

oUCHHHHH

Bon vais un peu googler tout cela mais c'est un peu overkill pour un truc "nice-to-have"...
Et au besoin s'arrêter.
Répondre - Catégorie:  
Informaticien.be - © 2002-2022 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?