Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

GUI plus facile


Sujet :

GUI Python

  1. #1
    Nouveau Candidat au Club
    GUI plus facile
    Bonjour,
    Je suis un nouvel apprenant de Python et je viens de finir la partie graphique (contruction de fenêtres et widgets,...), avec Tkinter, et je m'adapte avec wxpython; ce que je veux savoir, c'est s'il existe un EDI python facile comme VB.NET ou Delphi,... où on peut manipuler (déplacer et positionner les widgets) pour gagner du temps.

    Merci d'avance.

  2. #2
    Membre habitué
    Salut,

    Il ne doit pas y avoir grand monde qui utilise ce genre de chose, mais peut-être me trompe-je.

    Pour trouver, il faut chercher avec les bons mots clefs avec ton moteur de recherche favori.
    https://duckduckgo.com/python%20tkin...qt%20rad?ia=qa

    Faut quand même faire attention à bien regarder ce qui est encore maintenu, et ce qui ne l'est plus depuis bien longtemps.
    Le temps ronge l'amour comme l'acide.

  3. #3
    Membre extrêmement actif
    Citation Envoyé par PySerge Voir le message
    Bonjour,
    Je suis un nouvel apprenant de Python et je viens de finir la partie graphique (contruction de fenêtres et widgets,...), avec Tkinter, et je m'adapte avec wxpython; ce que je veux savoir, c'est s'il existe un EDI python facile comme VB.NET ou Delphi,... où on peut manipuler (déplacer et positionner les widgets) pour gagner du temps.

    Merci d'avance.
    réponse tardive mais Pycharm devrait le faire.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  4. #4
    Rédacteur

    Bonjour .

    Citation Envoyé par PySerge Voir le message
    ce que je veux savoir, c'est s'il existe un EDI python facile comme VB.NET ou Delphi,... où on peut manipuler (déplacer et positionner les widgets) pour gagner du temps.
    Réponse encore plus tardive, mais si tu veux du "Delphi like", tu peux aussi essayer "Boa constructor". Il a été écrit dans ce but.

    Amicalement,
    naute

  5. #5
    Expert éminent sénior
    Citation Envoyé par naute Voir le message
    Réponse encore plus tardive, mais si tu veux du "Delphi like", tu peux aussi essayer "Boa constructor". Il a été écrit dans ce but.
    Est-ce disponible sur Python3? J'en doute.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Rédacteur

    Bonjour wiztricks .

    Citation Envoyé par wiztricks Voir le message
    Est-ce disponible sur Python3? J'en doute.
    Sauf erreur de ma part, il a été porté sous Python v3 : voir ici.
    Je l'utilise personnellement sous Python v2.7.13, donc je ne peux pas donner d'avis sur le portage.

    Amicalement,
    naute

  7. #7
    Membre confirmé
    Même sous Python 2.7 il me semble que Boa Constructor a nécessité des corrections chez moi,
    J'utilise PyCharm mais je n'ai pas trouvé d'éditeur de formulaire.
    J'ai utilisé pygubu pour tkinter, pour des GUI de tesst.
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  8. #8
    Expert éminent
    Bonjour,

    J'ai commencé aussi avec tkinter, et quand j'ai cherché une librairie graphique plus performante, j'ai essayé wxPython et PyQt. Comme j'avais beaucoup travaillé avec Delphi, j'ai cherché un bon programme de dessin de fenêtre, et j'ai choisi PyQt grâce à son "Qt Designer" qui sait dessiner les fenêtres de manière interactive. Et je ne l'ai pas regretté: ça marche vraiment très bien.

    Le Designer est commun avec Qt5 écrit en C++. Il fabrique un texte en XML. Avec une commande de PyQt, on convertit ce texte en code Python qu'il suffit d'importer dans la partie principale du programme qu'on développe en Python.

    C'est en plus facile à installer avec pip: on installe "PyQt5", puis "pyqt5-tools" qui contient le Designer ainsi que d'autres programmes utilitaires (Assistant et Linguist).

    La bibliothèque graphique Qt5 est utilisée par le bureau graphique KDE de Linux, et bénéficie en conséquence de mises à jour assez fréquentes, suivies assez rapidement par PyQt5 de riverbank (https://riverbankcomputing.com/software/pyqt/intro).

    Il existe aussi "PySide2" (Qt for Python => https://wiki.qt.io/Qt_for_Python) qui fait la même chose que PyQt5 et qui a une licence plus "libre", mais je ne sais pas où en est son développement.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  9. #9
    Membre confirmé
    Pour Qt : attention quand même aux licences, il est dual LGPLv3 / Commercial (cher et pas adapté pour une PME à mon avis).
    D'autre pas ça m'ennuie d'embarquer Qt "juste" pour sa partie graphique, c'est un framework complet.
    A part la partie graphique (Tk) très rudimentaire, Python a déjà ce qu'il faut.
    Est-ce que l'on a crée un PyQT packagé avec son UI seulement ?
    Sinon je vois pas vraiment l'intérêt, autant travailler directement avec Qt.

    La wxPython me semblait plus désignée, mais boa constructor n'est hélas plus vraiment maintenu.
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  10. #10
    Expert éminent
    Bonjour,

    Pour le dessin des fenêtres, je n'ai rien trouvé d'autre sous Python que PyQt, et ça marche très bien sur ce point: on peut dessiner des fenêtres complexes, avec des widgets qui "suivent" bien les redimensionnements. On peut même sous Python utiliser des widgets personnalisés.

    Pour la licence: j'ai bien parlé de PSide2 qui est développé par l'équipe de Qt et qui a une licence GPL. Le problème de licence de PyQt n'existe que si on veut vendre le logiciel qu'on a développé.

    Dire qu'il ne faut pas prendre PyQt parce qu'il en fait trop est bizarre. C'est plutôt un avantage. Par exemple la classe QThread fait ce que fait threading.Thread, mais permet en plus de communiquer par signaux avec le thread principal, ce qui donne des solutions très élégantes pour des tâches longues (calcul, téléchargement, ...). On peut aussi faire du multimédia facilement: j'utilise tous les jours un petit programme d'écoute de radios internet très pratique, logé dans la zone de notification (http://python.jpvweb.com/python/mesrecettespython/doku.php?id=pyqt5_radioweb) que j'ai déjà proposé sur ce forum. La consultation et la modification d'une base de données relationnelle avec une grille de type tableur est également facile (c'était aussi un de mes critères de choix). On peut fabriquer directement des fichiers "pdf" pour créer, par exemple, des courriers personnalisés qu'on envoie ensuite, toujours sous Python, en pièces jointes par email. On peut aussi intégrer un navigateur internet pour consulter l'aide d'un programme qu'on a écrite en html (avec bluegriffon). Etc...

    Sur le plan des performances, on garde Python pour la partie facile, et on compte sur la partie Qt écrite en C++ pour aller vite: on a ainsi le meilleur des 2 mondes. On peut ensuite utiliser cx_freeze ou pyinstaller pour créer des versions autonomes afin de faciliter la diffusion sur des PC sans Python. Sous Windows, l'ajout d'un installeur comme innosetup donnera un programme graphique qui s'installera et ressemblera à n'importe quel autre, au point que l'utilisateur ne saura même pas que c'est écrit en Python...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  11. #11
    Membre confirmé
    Je disais plutôt que les dépendances de votre programme pyQt sont redondantes.
    Vous utilisez les mécanismes de threading de Qt plutôt que celui de Python, mais vous avez les deux. Quand au système de signal/slot que je trouve très bien aussi, il existe bien d'autres alertnatives (libsig++) qui peuvent être intégrées.

    Qt a son propre système de scripting (moteur javascript).
    Vous codez en python mais vous ne connaissez peut-être pas python, parce que vous vous arrêtez à sa partie facile...
    Du coup vous architecturez de façon douteuse, pour moi....

    C'est pour cela que je préfèrerai les wxWidgets, qui ont eux aussi un format XML et des designers. mais qui s'arrêtent à la partie GUI.

    C'est ainsi aussi que python ne progresse pas bien lui-même avec ses GUI dédiés, puis que l'on embarque des framework tierces à tout va...
    Vous me suivez ?
    Quand aux licences, on est pour beaucoup des pros ici, on espère gagner en compétence sur des licences qui sont contextuellement exploitables.
    Si finalement on ne sait faire que du Qt, on devient tributaire de sa politique commerciale.

    Cdlt,
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  12. #12
    Expert éminent
    @ bizulk

    Bonjour,

    Je reconnais que mon seul objectif est de faire des programmes fiables et faciles à utiliser sans autre contrainte. Je n'utilise que les fonctions officiellement disponibles, en évitant soigneusement de considérer la machinerie interne. Et jusqu'à présent, ça s'est plutôt bien passé, y compris pour des gros programmes, et ça dure depuis 10 ans.

    Mais je reconnais que dans d'autres contextes, on peut avoir à faire d'autres choix. Pas de problème pour moi.

    En ce qui concerne les licences, l'équipe de Qt5 édite "PySide2" qui fait la même chose que PyQt5, mais avec une licence "LGPL" (un peu moins contraignante que GPL), comme wxPython.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

###raw>template_hook.ano_emploi###