2010-03-18 5 views
3

Pour mon projet d'école, je voudrais construire un gui que quelqu'un d'autre peut utiliser pour créer un gui. Après quelques recherches, j'ai vu beaucoup de constructeurs de gui mais je n'ai rien vu dans le sens de ce que je cherchais.faire un éditeur de gui

Mais j'ai trouvé un tutoriel en C# sur here

Je crée plutôt cet éditeur graphique pour l'environnement Linux.

Des suggestions à l'endroit où je devrais commencer? quels outils je peux utiliser? Des liens vers des tutoriels?

Toute aide/direction serait grandement appréciée.

P.S. Je voudrais ajouter que cela doit seulement être très simple. comme peu de champs de saisie de texte et certains champs de type bouton que l'utilisateur peut organiser dans l'ordre désiré.

Répondre

6

Je vous recommandons d'essayer de ne pas construire votre propre GUI builder. C'est une tâche décourageante que vous ne pourrez accomplir en tant que projet d'école. C++ est entièrement compilé, ce qui signifie qu'il manque presque toutes les fonctionnalités qui permettent aux gens de créer des méta-outils (comme les éditeurs GUI) pour cela. Cela a principalement à voir avec le fait que C++ n'a pas de réflexion d'exécution (nativement, de toute façon). Au-delà de cela, il n'y a pas "une boîte à outils GUI et/ou un paradigme pour les gouverner tous." Cela rend votre problème incroyablement difficile à gérer. Donc, je recommanderais Qt, parce que cela fonctionne sur une tonne de plates-formes, est facile à utiliser et est tout simplement génial. Vous pouvez également regarder les milliards d'autres toolkits GUI comme Gtk +, Tk, FLTK, YAAF, GLUI, Dlib, CLX ...

Je suis conscient que cela ne répond pas réellement à la question. Cependant, je ne pense pas que l'auteur soit conscient de la difficulté incroyable de la tâche qu'il s'est fixée.

+0

Je ne sais pas. Je pense que si le format XML pour Gtk est décemment documenté (en supposant que), alors vous pourriez probablement écrire quelque chose de réalisable qui suppose une mise en page gridbag, et ne supporte qu'une douzaine de cibles. Je ne pense pas que ce serait la qualité de Glade, mais cela ne devrait pas être impossible. –

+0

Vous devriez regarder combien de temps Glade a pris pour se développer. Et cela a été fait avec des gens qui connaissaient bien GTK et le système GType. –

+1

+1: L'écriture d'un éditeur graphique est une tâche énorme. J'ai récemment eu besoin d'une interface graphique personnalisable, j'ai donc utilisé Qt Creator pour créer des fichiers .ui et ceux-ci peuvent être importés en tant que "widget" dans votre propre programme Qt pour les utiliser comme vous le souhaitez. – DrAl

0

Je n'ai pas de liens précis à ce sujet, mais voici un exemple de ce que vous pourriez faire. Gtk a la possibilité de charger une interface graphique en utilisant une classe appelée GtkBuilder. Glade (l'éditeur gtk gui habituel) prend en charge la sortie de son résultat en tant que fichier XML que la classe GtkBuilder lit ensuite.

Il serait possible pour votre programme de sortie un fichier XML formé que GtkBuilder pouvait équivalente lire.

Je n'ai aucune idée sur la façon dont il serait difficile de cibler que XML bien.

0

Vous devez utiliser GTK + ou Qt si vous ciblez l'environnement linux. Je pense que la première étape est d'apprendre à programmer gui, ce qui prend du temps à considérer que vous écrivez du code c/C++ différent des langages de plus haut niveau. Ne pensez-vous pas que l'apprentissage des programmes de code gui et l'écriture simultanée d'un constructeur de gui sont un peu trop. Vous devez d'abord maîtriser les bases de gui et ensuite passer à des projets plus difficiles.

est ici un lien vers un excellent livre sur GTK. (fondations de gtk + développement - Andrew Krause)

http://books.google.com/books?id=L1BZZYRrqSgC&printsec=frontcover&dq=foundations+krause&hl=es&cd=1#v=onepage&q=&f=false

Et voici un tutoriel/livre de cuisine pour GTK +.

http://zetcode.com/tutorials/gtktutorial/

La documentation officielle est sur library.gnome.org

Mon dernier conseil est d'apprendre une chose à la fois.

1

Je recommanderais de commencer par l'implémenter comme un interprète. Commencez avec un outil de ligne de commande très simple qui prend des commandes comme window (300, 400, "window1") et button (50,100, "button1") etc. et affiche le code (natif ou autre code GUI que vous voulez) dans un fichier . L'objectif devrait être de produire un fichier pouvant être exécuté et d'afficher l'interface graphique qui a été conçue. Une fois que vous avez cela, créez une interface graphique qui utilise les fonctions de ligne de commande en tant que back-end.