Comment puis-je construire une interface graphique en C++?
Tous mes programmes C++ ont été jusqu'à présent à l'aide de l'interface de ligne de commande et la seule autre langue que j'ai de l'expérience avec PHP qui ne prend pas en charge les Interfaces graphiques.
Où dois-je commencer avec interface utilisateur graphique de programmation en C++? Comment puis-je en créer un?
- Il dépend. Quel type de système d'exploitation ciblez-vous? De nombreux GUI cadres sont spécifiques aux systèmes d'exploitation.
- Quel système d'exploitation / plateforme? Ou, si vous êtes intéressé par l'écriture de la croix-plate-forme d'applications à interface graphique, merci de le dire - ces choses qui font une énorme différence pour le C++...
- Il n'a pas vraiment d'importance. Mais disons que Windows XP comme un exemple.
- PHP prend en charge l'écriture des programmes graphiques. Il n'y a aucune raison que vous ne pouvez pas exécuter des programmes de PHP en ligne de commande, et il y a des bibliothèques gui, comme PHP-GTK gtk.php.net et PHP-Qt php-qt.org qui peuvent aider vous aussi Vous aimeriez évaluer pourquoi vous avez besoin de c++. L'écriture d'Interfaces graphiques en c++ est plus difficile que dans de nombreuses autres langues, et vous pourriez être en mesure de regrouper votre code c++ dans les bibliothèques appelable à partir de Python ou C# ou PHP ou quelque chose d'un peu plus facile de coder des Interfaces utilisateur graphiques pour.
- Votre question est tellement vaste, que je pense vous ne voulez pas seulement les noms de boîtes à outils, ou même juste quelques tutoriels. Vous voulez un peu de livres, ceux qui vous donnent plus que des Api ou des exemples, qu'en fait vous donner des concepts. KTC recommande certains ci-dessous, mais je vous propose, quel que soit toolkit vous choisissez de commencer à jouer avec, assurez-vous de trouver celui que vous pouvez lire à ce sujet aussi.
- "L'écriture d'Interfaces graphiques en c++ est plus difficile que dans de nombreuses autres langues" En quoi êtes-vous fonder cette affirmation?
- Alors qu'avez vous fait finalement? Qu'avez-vous utilisé pour l'interface graphique?
Vous devez vous connecter pour publier un commentaire.
Essentiellement un système d'exploitation du système de fenêtrage expose certains appels d'API que vous pouvez effectuer pour accomplir des tâches telles que la création d'une fenêtre, ou de mettre un bouton sur la fenêtre. Fondamentalement, vous obtenez une suite de fichiers d'en-tête et vous pouvez appeler des fonctions dans ceux importés des bibliothèques, tout comme vous le feriez avec stdlib et
printf
.Chaque système d'exploitation est livré avec son propre toolkit graphique, suite à des fichiers d'en-tête, et les appels de l'API, et de leur propre façon de faire les choses. Il y a aussi de la croix-plate-forme de boîtes à outils comme gtk, qt, et wx widgets qui vous aident à construire des programmes qui fonctionnent n'importe où. Ils y arrivent par avoir les mêmes appels de l'API sur chaque plate-forme, mais d'une autre mise en œuvre de ces fonctions de l'API que l'appel vers le système d'exploitation natif d'appels d'API.
Une chose qu'ils vous ont tous en commun, qui sera différent d'un programme en ligne de commande, est quelque chose qui s'appelle une boucle. L'idée de base il est un peu compliqué et difficile à compresser, mais, en substance, cela signifie que pas un enfer de beaucoup se passe dans votre classe principale/fonction principale, à l'exception de:
Il existe de nombreuses ressources sur l'événement en fonction de la programmation. Si vous avez de l'expérience avec javascript, c'est la même idée de base, sauf que vous, le scripteur n'ont pas accès ou contrôle sur la boucle d'événement de lui-même, ou ce que les événements y sont, votre seul travail consiste à écrire et enregistrer des gestionnaires.
Vous devriez garder à l'esprit que la programmation GUI est incroyablement compliqué et difficile, en général. Si vous avez la possibilité, il est vraiment beaucoup plus facile d'intégrer un serveur web intégré dans votre programme et avoir un html/interface web. La seule exception que j'ai rencontré est la Pomme de cacao+xcode+interface builder + tutoriels qui font qu'il est de loin le plus accessible de l'environnement pour les personnes nouvelles à la programmation GUI que j'ai vu.
Il y a beaucoup de free portable bibliothèques GUI, chacun avec ses propres forces et de ses faiblesses:
Surtout Qt a de bons tutoriels et des outils qui vous aider à démarrer. Profitez-en!
Noter, cependant, que vous devez vous éviter de la plate-forme fonctionnalités telles que l'API Win32 ou MFC. Liens qui vous inutilement sur une plate-forme spécifique avec presque pas de bénéfices.
Indépendant du système d'exploitation de l'algorithme de "Créer des applications avec interface graphique en C++ en trois étapes":
Installer Qt Creator
Créer un nouveau projet (Qt Widgets de l'Application)
Construire.
Félicitations, vous avez obtenu votre première interface graphique en C++.
Vous êtes maintenant prêt à lire beaucoup de la documentation pour créer quelque chose de plus compliquer que "Hello world" GUI application.
Donné le commentaire de "dire Windows XP comme un exemple", alors vos options sont:
Interagir directement avec le système d'exploitation via son API, qui pour Microsoft Windows est surprise surprise d'appel API de Windows. La référence définitive pour la WinAPI est Microsoft Site web MSDN. Populaire en ligne tutoriel pour débutant pour qui est theForger Win32 API de Programmation Tutoriel. Le livre classique pour ce qui est de Charles Petzold La programmation Windows, 5e Édition.
Utiliser une plate-forme (à la fois en termes de système d'exploitation, et le compilateur) bibliothèque spécifique, comme MFC, qui encapsule la WinAPI en C++ de la classe. La référence pour ce qui est de nouveau MSDN. Un livre classique pour qui est Jeff Prosise de La programmation Windows avec les MFC, 2e Édition. Si vous utilisez le dire CodeGear C++ Builder, puis l'option ici est VCL.
Utiliser une plate-forme de bibliothèque comme GTK+ (wrapper C++: z gtkmm), Qt, wxWidgets, ou FLTK qui enveloppent le système d'exploitation spécifique de l'API. Les avantages de ces sont qu'en général, votre programme aurait été compilé pour différents systèmes d'exploitation sans avoir à modifier les codes sources. Comme déjà mentionné, ils ont chacun de ses propres forces et faiblesses. Une considération lors de la sélection de l'application à utiliser est sa licence. Pour les exemples donnés, GTK+, & z gtkmm est sous licence LGPL, Qt est sous diverses licences y compris pour les propriétaires option, wxWidgets est en vertu de sa propre wxWindows Licence (avec un changement de nom pour wxWidgets Licence), et FLTK est sous licence LGPL avec exception. Pour référence, tutoriel, et ou des livres, reportez-vous à son site web pour plus de détails.
Puisque j'ai déjà été là où vous êtes maintenant, je pense que je peux "réponse", vous.
Le fait est qu'il n'est pas facile de faire une interface graphique. GUI sont très dépendantes de la plate-forme de l'OS et de code spécifique, c'est pourquoi vous devriez commencer à lire votre cible de plate-forme/OS de la documentation sur la fenêtre de gestion des Api. La bonne chose est: il ya beaucoup de bibliothèques qui remédier à ces limitations et abstrait archtecture différences dans un seul et multi-plate-forme de l'API. Celles suggérées avant, GTK et QT, sont quelques-uns de ces bibliothèques.
Mais même ceux-ci sont un peu TROP compliqué, car beaucoup de nouveaux concepts, types de données, les espaces de noms et les classes sont introduits, tout à la fois. Pour cette raison, ils utilisent à venir livré avec un peu de GUI de l'éditeur WYSIWYG. Ils ont très bien faire le logiciel de programmation avec des Interfaces utilisateur possible.
Pour résumer, il y a aussi des non-libre "milieux" de l'interface de développement tels que Visual Studio de Microsoft. Pour ceux avec Delphi expérience origines, Visual Studio peut être plus familier. Il y a aussi des alternatives gratuites à la pleine environnement Visual Studio fourni à partir de Microsoft: Visual Studio Express, ce qui est plus que suffisant pour commencer sur le développement du GUI.
J'ai trouvé un site avec un "simple" tutoriel:
http://www.winprog.org/tutorial/start.html
Il est facile de créer un .NET Windows GUI en C++.
Voir le tutoriel suivant de MSDN. Vous pouvez télécharger tout ce dont vous avez besoin (Visual C++ Express) pour gratuit.
Bien sûr, vous attachez-vous .NET, mais si vous êtes juste de jouer autour ou seulement besoin d'une application Windows, vous serez bien (la plupart des personnes ont encore Windows...pour l'instant).
- Je utiliser FLTK parce que QT ne sont pas libres. Je ne choisis pas de wxWidgets, parce que mon premier test avec un simple programme " hello world produire un exécutable de 24mo, fltk 0.8 MO...