Partage
  • Partager sur Facebook
  • Partager sur Twitter

[GUI] Web UIs en Python ?

Comment obtenir une interface graphique 100% portable ?!

Anonyme
    6 novembre 2010 à 17:03:22

    Salut,

    J'ai besoin d'un module bien spécifique :)

    Prenons un exemple: le module ConfigParser de Python.
    Ce module ne nécessite que la librairie standard de Python (d'ailleurs il en fait partie), et permet de parser les fichiers au format «ini»; et ceux quelque soit le système d'exploitation sur lequel on se trouve:

    Il est donc portable, simple et ne nécessite pas de configuration où d'installation spécifique.



    C'est un module comme ça qu'il me faudrait... mais pour faire des interfaces graphiques !


    Évidemment, des modules permettant de faire des interfaces graphique sophistiquées existent (pyQt, pyGTK, etc...) mais tous les programmes n'ont pas besoin d' avoir une interface graphique «de la mort qui tue»: pouvoir afficher du texte, un menu et des boutons suffiraient amplement à pas mal de cas !


    Et puis, ces modules utilisent en fait des librairies en C, ce qui les rends dépendants de de ces librairies !
    Quand on utilise ces modules, on doit donc installer la librairie à proprement parler (les «.dll», où les «.so» ), puis les modules eux même, ce qui peut devenir un vrai casse-tête sur un système n’ayant pas de gestionnaire de paquets...


    Je pense qu'il serait utile d'avoir un module qui puisse faire des GUIs sur n'importe quel système, et ce que l'environnement graphique soit basé sur X11, sur Aqua, ou sur un truc louche de Micro$oft.


    Ce module, comme ConfigParser où d'autres modules de la librairie standard (j'ai pris l'exemple de ConfigParser au hasard !), serait écrit en pur Python, marcherait sur tous les systèmes, serait simple à utiliser, et ne nécessiterai pas d'installation où de configuration particulière...

    Le point commun entre tous les systèmes d'exploitations de type «desktop», c'est le navigateur web:
    GNU/Linux, BSD, GNU/Hurd, MacOSX, Windows... ils peuvent peuvent tous afficher une page web !


    La solution ne serait elle pas d'avoir un module basé sur SimpleHTTPServer qui lancerai un mini-serveur web en local pour propulser une GUI basique ?!

    Est ce que quelqu'un connaîtrait un tel module?

    Ou est ce que quelqu'un aurait une idée sur la façon dont un module comme ça pourrait être codé?
    J'ai pensé à des widgets basiques comme des boutons, des listes ou des entrées de texte «gridées» sur des tables html et dont chacun pointerai vers une URL de type «http://localhost:<port>/?widget=<id_du_widget>&event=<nome_de_l'evenement>&data=<données_éventuelles>». Cela permettrait au serveur de capter les actions de l'utilisateur, et le HTML basique est supporté par tous les navigateurs...

    Sinon, quelqu'un connaitrait-il une autre technologie permettant le même résultat ?!

    En bref, l'idée serait donc d'avoir un module écrit en pur Python et qui permettrait de faire une GUI basique et portable sans nécessiter d'installation spécifique, et j’aimerai entendre tous les {avis/idées/connaissances/autre} de tout le monde sur le sujet :D

    Merci d'avance ;)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      6 novembre 2010 à 17:58:22

      Je dirais Tkinter + webbrowser
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        6 novembre 2010 à 20:08:15

        Citation : fred1599

        Je dirais Tkinter + webbrowser



        Contrairement à ce que l'on croit, Tkinter n'est pas forcément installé avec Python...


        Sinon, c'est vrai, webbrowser pourra m'aider à ouvrir le navigateur quand j'aurais fini mon module... car j'ai commencé à le coder, finalement ;)

        Je posterai le code dans ce topic demain, car il est tard :)
        • Partager sur Facebook
        • Partager sur Twitter

        [GUI] Web UIs en Python ?

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown