Question

Je veux me lancer dans la programmation des applications graphiques graves, mais quand je regarde les choses comme Swing / SWT de Java, je ne peux pas aider mais la programmation HATE une interface graphique en créant des objets « widget » et les remplir et appeler des méthodes sur eux.

Je pense que la conception de l'interface graphique doit être fait dans un fichier à base de texte séparé dans un format de balisage, qui est lu et rendu (par exemple HTML), de sorte que la conception de l'interface est pas couplée étroitement avec le reste du code.

Je l'ai vu HTMLayout et j'aime l'idée, mais jusqu'à présent, il semble seulement en C ++.

Je suis à la recherche d'une bibliothèque Python (ou même un projet WIP) pour faire interface utilisateur graphique balisage.

UPDATE

La raison pour laquelle je ne peux pas accepter le xml de QT est la même raison que je déteste l'approche programatic; vous assemblez chaque widget de séparément, et en spécifiant chaque propriété de celui-ci sur une ligne distincte. Il ne fournit aucun avantage par rapport à ce faire le chemin programatic.

Était-ce utile?

La solution

Vous pouvez essayer XUL de Mozilla. Il prend en charge Python via XPCOM.

Voir ce projet: pyxpcomext

XUL est pas compilé, il est emballé et chargé à l'exécution. Firefox et bien d'autres grandes applications utilisent, mais la plupart d'entre eux utilisent Javascript pour le script au lieu de Python. Il y a un ou 2 en utilisant Python bien.

Autres conseils

Vous devriez regarder dans Qt, que vous pouvez utiliser à partir de Python en utilisant l'excellente interface PyQt (pourquoi ils ne l'appellent QtPy --- cutiepie, l'obtenir? --- Je ne comprendrai jamais).

Avec Qt, vous pouvez avoir le choix de construire de votre interface graphique par programmation (que vous ne voulez pas), ou en utilisant des balises XML. Ce fichier XML peut être soit compilé à coder au préalable, ou chargé avec une commande courte. Ce dernier est la façon normale de travailler en utilisant PyQt.

Qt est polyvalent, de haute qualité, multi-plateforme, et vous êtes probablement déjà l'utiliser sans le savoir. L'application client Skype officiel est écrit dans Qt si je me souviens bien.

Modifier Il suffit d'ajouter quelques liens de sorte que le OP se faire une idée de ce ...

Qu'en est-il wxPython? Je commence à peine à travailler avec elle, mais il y a un outil - XRC Resource Editor - qui vous permet d'assembler votre interface graphique, qui est ensuite écrit dans un fichier XML. Si je comprends bien, votre application Python charge le fichier XML, plutôt que d'avoir un tas de code de GUI-layout mélangé avec votre code Python.

Si vous choisissez une langue comme Tcl ou Python et Tk pour le développement de votre application, il devient assez trivial d'écrire votre propre DSL pour décrire l'interface. Vous pouvez, par exemple, écrire un DSL qui vous permet de créer des menus comme ceci:

menubar {
    File => {
        Open => cmd.open
        Save => cmd.save
        Exit => cmd.exit
    }
    Edit => {
        Cut => cmd.cut
        Copy => cmd.copy
        Paste => cmd.paste
    }
}

... et vos principales formes de l'interface graphique comme celle-ci:

form PropertiesForm {
          Font: [fontchooser]
    Foreground: [foregroundChooser]
    Background: [backgroundChooser]
}
form NewUserForm {
    username [_____________________]
    [] administrator
    enable the following features:
    () feature 1
    () feature 2
    () feature 3
}
notebook {
   Properties => PropertiesForm
   New User => NewUserForm
}

... et ainsi de suite. Tcl excelle vraiment à vous laisser écrire DSLs comme celui-ci. Notez que cette fonctionnalité ne se construit pas pour Tcl en soi, mais la langue fait trivial DSLs. Une partie de ce genre de chose existe sur le wiki du Tcler, par exemple, il y a un code pour créer des menus similaires à ce que je décrit à Menus Made Easy .

Je pense, cependant, qu'après un certain temps, vous trouverez vraiment, vraiment difficile de faire de qualité professionnelle UIs de cette manière.

Si vous utilisez GTK , vous pouvez utiliser Glade , qui est un fichier XML.

En tant que programmeur graphique qui a acquis une certaine expérience , vous devriez probablement rouler votre propre petite boîte à outils douce pour automatiser les tâches que vous vous surprendrez à faire encore et encore.

de XML, pas Python, mais regardez openlaszlo

fenêtres?

vous pouvez utiliser l'éditeur de WinForms dans Visual Studio, puis parler à l'assemblée de IronPython.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top