Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Système de fenêtrage

23 réponses
Avatar
PP
Bonjour à tous,

Je découvre le langage Python, qui me parait être un langage bien
puissance et surtout facile à écrire.

Notament au niveau de la création de petite application avec fenêtre.

Aussi ma question, combien d'API existe pour créer des fenêtre.

J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?
Et le-lesquels sont "mieux" ?

Mais lequel faudrait-il prendre ? ;) vaste question ?

10 réponses

1 2 3
Avatar
FredP
PP said :

Bonjour à tous,
Je découvre le langage Python, qui me parait être un langage bien
puissance et surtout facile à écrire.
Notament au niveau de la création de petite application avec fenêtre.
Aussi ma question, combien d'API existe pour créer des fenêtre.
J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?
Et le-lesquels sont "mieux" ?



Il n'y a pas de "mieux", depuis 15 ans que le débat existe, ça se saurait
:-)
Tout dépend de ce qu'on veut faire.

Pygame, comme son nom l'indique, est essentiellement un moteur graphique
efficace (et multi-plateforme) pour les jeux et le multimédia. Il n'y pas
de widgets ni d'UI dedans, il faut tout faire soi-même, même le "vent
loop" :-)

PyGTK est très "Linuxien", même s'il tourne sous Windows aussi. J'ai
l'impression qu'il est un peu en perte de vitesse, mais je peux me
tromper.

wxPython est assez complet, très portable, mais avec une API assez
alambiquée parfois, qui accuse son âge.

PyQt (et PySide, c'est à peu près pareil) est certainement le plus
abouti, en termes d'API, de widgets et de présentation. En revanche c'est
un mammouth de prime abord, même si ça devient très productif une fois la
première marche passée. Je crois que PyQt5 n'est disponible que pour
Python3. Je me suis arrêté au 4, je ne connais pas QML et autres.

En tout cas c'est mon ressenti personnel, après avoir bricolé un peu avec
chacun au fil des années.

Pendant tout ce temps j'ai négligé Tkinter, pourtant inclus dans Python
depuis le tout début, parce que tout le monde disait qu'il est moche et
rustique.

Je le redécouvre depuis 2/3 ans, et maintenant quand j'ai besoin d'une UI
pour un outil, je n'utilise plus que ça. C'est vrai que le look est
vieillot (genre Windows 95 :-), et que la bibliothèque de widgets paraît
pauvre, mais les widgets en question sont bien plus puissants qu'il n'y
paraît, et son API compacte le rend bien plus accessible que les autres.
Un gros intérêt c'est qu'on peut arriver avec son fichier .py sur
n'importe quelle machine où Python est installé/installable, et
l'exécuter sans devoir installer le run-time de l'environnement
graphique, qui est parfois énorme (Qt).

Maintenant si tu veux commencer avec un truc moderne et plein de
potentiel, tu peux aussi essayer Kivy. C'est très récent mais déjà assez
abouti, fait par des Français au départ, et très orienté vers les
interfaces fluides et tactiles (basé sur Pygame entre autres, mais avec
des widgets :-). Aujourd'hui c'est le seul moyen à ma connaissance de
coder en Python des applications pour Android et iOS.
Avatar
FredP
PP said :

Bonjour à tous,
Je découvre le langage Python, qui me parait être un langage bien
puissance et surtout facile à écrire.
Notament au niveau de la création de petite application avec fenêtre.
Aussi ma question, combien d'API existe pour créer des fenêtre.
J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?
Et le-lesquels sont "mieux" ?



Il n'y a pas de "mieux", depuis 15 ans que le débat existe, ça se saurait
:-)
Tout dépend de ce qu'on veut faire.

Pygame, comme son nom l'indique, est essentiellement un moteur graphique
efficace (et multi-plateforme) pour les jeux et le multimédia. Il n'y pas
de widgets ni d'UI dedans, il faut tout faire soi-même, même le "event
loop" :-)

PyGTK est très "Linuxien", même s'il tourne sous Windows aussi. J'ai
l'impression qu'il est un peu en perte de vitesse, mais je peux me
tromper.

wxPython est assez complet, très portable, mais avec une API assez
alambiquée parfois, qui accuse son âge.

PyQt (et PySide, c'est à peu près pareil) est certainement le plus
abouti, en termes d'API, de widgets et de présentation. En revanche c'est
un mammouth de prime abord, même si ça devient très productif une fois la
première marche passée. Je crois que PyQt5 n'est disponible que pour
Python3. Je me suis arrêté au 4, je ne connais pas QML et autres.

En tout cas c'est mon ressenti personnel, après avoir bricolé un peu avec
chacun au fil des années.

Pendant tout ce temps j'ai négligé Tkinter, pourtant inclus dans Python
depuis le tout début, parce que tout le monde disait qu'il est moche et
rustique.

Je le redécouvre depuis 2/3 ans, et maintenant quand j'ai besoin d'une UI
pour un outil, je n'utilise plus que ça. C'est vrai que le look est
vieillot (genre Windows 95 :-), et que la bibliothèque de widgets paraît
pauvre, mais les widgets en question sont bien plus puissants qu'il n'y
paraît, et son API compacte le rend bien plus accessible que les autres.
Un gros intérêt c'est qu'on peut arriver avec son fichier .py sur
n'importe quelle machine où Python est installé/installable, et
l'exécuter sans devoir installer le run-time de l'environnement
graphique, qui est parfois énorme (Qt).

Maintenant si tu veux commencer avec un truc moderne et plein de
potentiel, tu peux aussi essayer Kivy. C'est très récent mais déjà assez
abouti, fait par des Français au départ, et très orienté vers les
interfaces fluides et tactiles (basé sur Pygame entre autres, mais avec
des widgets :-). Aujourd'hui c'est le seul moyen à ma connaissance de
coder en Python des applications pour Android et iOS.
Avatar
Wolfgang Keller
Aussi ma question, combien d'API existe pour créer des fenêtre.

J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?



Tkinter, PyGUI, PyObjC, PyWin32, PyFLTK et certainement plein
d'autres...

Et le-lesquels sont "mieux" ?

Mais lequel faudrait-il prendre ? ;) vaste question ?



Comme d'habitude: Ca dépend.

Les plus communs semblent être wxPython et PyQt.

À+,

Wolfgang
Avatar
Nicolas
Le 15/02/2014 21:51, Wolfgang Keller a écrit :
Aussi ma question, combien d'API existe pour créer des fenêtre.

J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?



Tkinter, PyGUI, PyObjC, PyWin32, PyFLTK et certainement plein
d'autres...

Et le-lesquels sont "mieux" ?

Mais lequel faudrait-il prendre ? ;) vaste question ?



Comme d'habitude: Ca dépend.

Les plus communs semblent être wxPython et PyQt.



Attention aux problèmes de licence avec PyQt.
PySide a été lancé par une équipe de Nokia pour contrer ces problèmes.
Mais Nokia ayant abandonné Qt, PySide n'est plus développé de façon
aussi dynamique qu'auparavant. Par exemple, PySide n'existe pas pour
Python3 par manque de ressources de dev.

WxPython a une doc plutôt bien faite. Il y a aussi une demo très bien
faite. Le panneau de gauche permet de choisir un widget. Le panneau de
droite affichage soit une aide/description, soit le code correspondant à
la démo du widget sélectionné, soit le widget lui même.
WxPython n'existera pas en tant que tel pour Python3. Une remise à plat
est faite pour un code et une architecture interne plus modernes. Le
projet s'appelle Phoenix (http://wiki.wxpython.org/ProjectPhoenix).
Avatar
Laurent Pointal
Nicolas wrote:

Le 15/02/2014 21:51, Wolfgang Keller a écrit :
Aussi ma question, combien d'API existe pour créer des fenêtre.

J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?



Tkinter, PyGUI, PyObjC, PyWin32, PyFLTK et certainement plein
d'autres...

Et le-lesquels sont "mieux" ?

Mais lequel faudrait-il prendre ? ;) vaste question ?



Comme d'habitude: Ca dépend.

Les plus communs semblent être wxPython et PyQt.



Attention aux problèmes de licence avec PyQt.
PySide a été lancé par une équipe de Nokia pour contrer ces problèmes.
Mais Nokia ayant abandonné Qt, PySide n'est plus développé de façon
aussi dynamique qu'auparavant. Par exemple, PySide n'existe pas pour
Python3 par manque de ressources de dev.



Le python3-pyside est encore listé sur

http://qt-project.org/wiki/PySide_Binaries_Linux

Et sur

http://qt-project.org/wiki/PySide_Binaries_Windows

Par contre, pour Qt 4.8, pas 5.x - probable que le manque de ressources dont
tu parles soit lié.



WxPython a une doc plutôt bien faite. Il y a aussi une demo très bien
faite. Le panneau de gauche permet de choisir un widget. Le panneau de
droite affichage soit une aide/description, soit le code correspondant à
la démo du widget sélectionné, soit le widget lui même.
WxPython n'existera pas en tant que tel pour Python3. Une remise à plat
est faite pour un code et une architecture interne plus modernes. Le
projet s'appelle Phoenix (http://wiki.wxpython.org/ProjectPhoenix).
Avatar
Nicolas
Le 17/02/2014 22:11, Laurent Pointal a écrit :
Nicolas wrote:

Le 15/02/2014 21:51, Wolfgang Keller a écrit :
Aussi ma question, combien d'API existe pour créer des fenêtre.

J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?



Tkinter, PyGUI, PyObjC, PyWin32, PyFLTK et certainement plein
d'autres...

Et le-lesquels sont "mieux" ?

Mais lequel faudrait-il prendre ? ;) vaste question ?



Comme d'habitude: Ca dépend.

Les plus communs semblent être wxPython et PyQt.



Attention aux problèmes de licence avec PyQt.
PySide a été lancé par une équipe de Nokia pour contrer ces problèmes.
Mais Nokia ayant abandonné Qt, PySide n'est plus développé de façon
aussi dynamique qu'auparavant. Par exemple, PySide n'existe pas pour
Python3 par manque de ressources de dev.



Le python3-pyside est encore listé sur

http://qt-project.org/wiki/PySide_Binaries_Linux

Et sur

http://qt-project.org/wiki/PySide_Binaries_Windows

Par contre, pour Qt 4.8, pas 5.x - probable que le manque de ressources dont
tu parles soit lié.



Je parlais effectivement de Qt 5.x.
Merci Laurent de préciser ce "détail".


WxPython a une doc plutôt bien faite. Il y a aussi une demo très bien
faite. Le panneau de gauche permet de choisir un widget. Le panneau de
droite affichage soit une aide/description, soit le code correspondant à
la démo du widget sélectionné, soit le widget lui même.
WxPython n'existera pas en tant que tel pour Python3. Une remise à plat
est faite pour un code et une architecture interne plus modernes. Le
projet s'appelle Phoenix (http://wiki.wxpython.org/ProjectPhoenix).



Avatar
Wolfgang Keller
Attention aux problèmes de licence avec PyQt.



Pour ceux qui n'aiment pas la GPL, il y a toujours la possibilité de
combiner PyQt en version commercial avec Qt en version LGPL. La
version commercial de PyQt, contrairement à Qt n'est pas si cher que ca.

À+,

Wolfgang
Avatar
Pierre Maurette
PP :
Bonjour à tous,

Je découvre le langage Python, qui me parait être un langage bien puissance
et surtout facile à écrire.

Notament au niveau de la création de petite application avec fenêtre.

Aussi ma question, combien d'API existe pour créer des fenêtre.

J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?
Et le-lesquels sont "mieux" ?

Mais lequel faudrait-il prendre ? ;) vaste question ?



Si l'interface graphique est le but, je ne sais pas. Je suis dans
l'optique de rendre simplement certaines applications plus conviviales,
voire mieux utilisables. Je cherche autant quz faire se peut à
conserver l'avantage de la portabilité entre plateformes. J'ai deux
approches:
- J'avais attaqué directement par Tkinter. Je pense qu'à terme il est
difficile de l'ignorer totalement, le découvrir n'est pas du temps
perdu. Ce n'est pas si moche, ce qui est proposé actuellement -
j'utilise Python 2.7.5 sous Windows, un peu plus ancien sous Linux -
est plus flatteur que beaucoup d'images trouvées sur les documentations
et autres tuts laissent imaginer. Penser à régler le fichier optionDB.
Ce n'est pas trop compliqué, il faut juste commencer. J'ai mis quelques
squelettes de composants en bibliothèque, j'ai archivé quelques
applications, et ça va vite en procédant par copier-coller et réglage
de structures. Je n'irai sans doute pas plus vite avec un RAD. C'est
particulièrement adapté à des outils de complexité moyenne, qui
tourneraient déjà en ligne de commande, avec par exemple un
dictionnaire d'actions.
- Essentiellement pour des applications impliquant une base de données,
je viens de découvrir web2py. Quand on est juste dans la cible, c'est
redoutablmement efficace. Je ne pense pas pour autant que ça réponde à
vos attentes, c'est surtout intéressant si on accepte l'interface telle
que proposée, ce n'est pas vraiment un machin pour développer une
interface graphique, mais plutôt un moyen de vous en passer.

Je note quand même que mes trucs les plus utiles en Python se passent
d'interface propre. Plugins, lancement sur évènements, menus
contextuels, insertion de média, etc. Et surtout j'utilise souvent des
scripts, parfois plutôt joufflus, dans un contexte plus étendu, je suis
alors sous Eclipse. Dans ce cas, plus d'interface, plus de ligne de
commande, j'édite le source et je clique sur /Run/.

--
Pierre Maurette
Avatar
ast
"PP" a écrit dans le message de news:ldkpc1$l9$

Bonjour à tous,



bonjour

Je découvre le langage Python



moi aussi

Notament au niveau de la création de petite application avec fenêtre. Aussi ma question, combien
d'API existe pour créer des fenêtre.



C'est quoi une API ?


J'ai vu PyGObjet pour GTK3, PyQt pour QT4 ou Qt5 ? Pyside ?
Pygame ? Wxwidget ? en existe-t-il d'autre ?
Et le-lesquels sont "mieux" ?




Y a t'il un rapport avec Tkinter ?
Avatar
Kobayashi
Le 15/02/2014 20:09, FredP a écrit :
PP said :

Bonjour à tous,



...

Maintenant si tu veux commencer avec un truc moderne et plein de
potentiel, tu peux aussi essayer Kivy. C'est très récent mais déjà assez
abouti, fait par des Français au départ, et très orienté vers les
interfaces fluides et tactiles (basé sur Pygame entre autres, mais avec
des widgets :-). Aujourd'hui c'est le seul moyen à ma connaissance de
coder en Python des applications pour Android et iOS.





Suite à ce message, j'ai essayé Kivy et c'est vraiment excellent !
Quand tu connais déjà pyqt, c'est très facile à utiliser.
Je suis à la base sous linux (fedora 20) mais en installant
l'appli Kivy Launcher sous android et en copiant le main.py sur le
tel., ça marche sous android ... magique !!
1 2 3