Jusqu'à présent, tous mes programmes C ++ ont utilisé l'interface de ligne de commande et le seul autre langage avec lequel j'ai de l'expérience est PHP qui ne prend pas en charge les interfaces graphiques.
Par où commencer avec la programmation de l'interface utilisateur graphique en C ++? Comment en créer un?
c++
user-interface
waiwai933
la source
la source
Réponses:
Essentiellement, le système de fenêtrage d'un système d'exploitation expose certains appels d'API que vous pouvez effectuer pour effectuer des tâches telles que créer une fenêtre ou placer un bouton sur la fenêtre. Fondamentalement, vous obtenez une suite de fichiers d'en-tête et vous pouvez appeler des fonctions dans ces bibliothèques importées, tout comme vous le feriez avec stdlib et
printf
.Chaque système d'exploitation est livré avec sa propre boîte à outils GUI, sa suite de fichiers d'en-tête et ses appels d'API, ainsi que sa propre façon de faire. Il existe également des boîtes à outils multiplateformes comme GTK , Qt et wxWidgets qui vous aident à créer des programmes qui fonctionnent n'importe où. Ils y parviennent en ayant les mêmes appels API sur chaque plate-forme, mais une implémentation différente pour les fonctions API qui appellent les appels API natifs du système d'exploitation.
Une chose qu'ils auront tous en commun, qui sera différente d'un programme CLI, est ce qu'on appelle une boucle d'événement. L'idée de base est quelque peu compliquée et difficile à compresser, mais cela signifie essentiellement qu'il n'y a pas grand-chose dans votre classe principale / fonction principale, sauf:
Il existe de nombreuses ressources sur la programmation basée sur les événements. Si vous avez une expérience avec JavaScript, c'est la même idée de base, sauf que vous, le scripteur, n'avez aucun accès ou contrôle sur la boucle d'événements elle-même, ou sur les événements qui existent, votre seul travail consiste à écrire et à enregistrer des gestionnaires.
Vous devez garder à l'esprit que la programmation GUI est incroyablement compliquée et difficile, en général. Si vous en avez la possibilité, il est en fait beaucoup plus facile d'intégrer simplement un serveur Web intégré à votre programme et d'avoir une interface HTML / Web. La seule exception que j'ai rencontrée est le constructeur d'interface Cocoa + Xcode + d' Apple + des didacticiels qui en font facilement l'environnement le plus accessible pour les personnes nouvelles en programmation GUI que j'ai vues.
la source
Il existe de nombreuses bibliothèques GUI portables gratuites , chacune avec ses propres forces et faiblesses:
Surtout Qt a de bons tutoriels et outils qui vous aident à démarrer. Prendre plaisir!
Notez cependant que vous devez éviter les fonctionnalités spécifiques à la plate-forme telles que l'API Win32 ou MFC. Cela vous lie inutilement sur une plate-forme spécifique avec presque aucun avantage.
la source
Algorithme indépendant du système d'exploitation " Création d'applications GUI en C ++ en trois étapes ":
Installer Qt Creator
Créer un nouveau projet (Qt Widgets Application)
Construit le.
Félicitations, vous avez votre première interface graphique en C ++.
Vous êtes maintenant prêt à lire beaucoup de documentation pour créer quelque chose de plus compliqué que l'application graphique "Hello world".
la source
Étant donné le commentaire de "disons Windows XP comme exemple", vos options sont les suivantes:
Interagissez directement avec le système d'exploitation via son API, qui pour Microsoft Windows est une surprise surprise appelée Windows API . La référence définitive pour WinAPI est le site Web MSDN de Microsoft . Un didacticiel en ligne populaire pour les débutants est le didacticiel de programmation API Win32 de Forger . Le livre classique pour cela est la programmation Windows de Charles Petzold , 5e édition .
Utilisez une bibliothèque spécifique à la plate-forme (à la fois en termes de système d'exploitation et de compilateur) telle que MFC , qui enveloppe WinAPI dans la classe C ++. La référence pour cela est à nouveau MSDN. Un livre classique pour cela est la programmation de Jeff Prosise Windows avec MFC, 2e édition . Si vous utilisez, par exemple, CodeGear C ++ Builder, l'option ici est VCL .
Utilisez une bibliothèque multiplateforme telle que GTK + (wrapper C ++: gtkmm ), Qt , wxWidgets ou FLTKqui enveloppent l'API du système d'exploitation spécifique. Les avantages de ceux-ci sont qu'en général, votre programme peut être compilé pour différents systèmes d'exploitation sans avoir à modifier les codes source. Comme cela a déjà été mentionné, ils ont chacun leurs propres forces et faiblesses. Une considération lors de la sélection de celui à utiliser est sa licence. Pour les exemples donnés, GTK + & gtkmm est sous licence LGPL, Qt est sous diverses licences, y compris l'option propriétaire, wxWidgets est sous sa propre licence wxWindows (avec un renommage en wxWidgets License), et FLTK est sous LGPL avec exception. Pour référence, tutoriel et / ou livres, reportez-vous au site Web de chacun pour plus de détails.
la source
Puisque je suis déjà là où vous êtes en ce moment, je pense que je peux vous «répondre».
Le fait est qu'il n'y a pas de moyen facile de créer une interface graphique. Les interfaces graphiques dépendent fortement de la plate-forme et du code spécifique au système d'exploitation, c'est pourquoi vous devriez commencer à lire la documentation de votre plate-forme / système d'exploitation cible sur les API de gestion des fenêtres. La bonne chose est: il existe de nombreuses bibliothèques qui traitent ces limitations et différences d'architecture abstraite en une seule API multi-plateforme. Ceux suggérés auparavant, GTK et Qt, sont quelques-unes de ces bibliothèques.
Mais même ceux-ci sont un peu trop compliqués, car de nombreux nouveaux concepts, types de données, espaces de noms et classes sont introduits en même temps. Pour cette raison, ils sont fournis avec un éditeur GUI WYSIWYG. Ils rendent à peu près possible un logiciel de programmation avec des interfaces graphiques.
Pour résumer, il existe également des "environnements" non gratuits pour le développement d'interfaces graphiques tels que Visual Studio de Microsoft. Pour ceux qui ont une expérience en Delphi , Visual Studio peut être plus familier. Il existe également des alternatives gratuites à l'environnement Visual Studio complet fourni par Microsoft: Visual Studio Express , qui est plus que suffisant pour démarrer le développement de l'interface graphique.
la source
J'ai trouvé un site Web avec un tutoriel "simple": http://www.winprog.org/tutorial/start.html
la source
Il est facile de créer une interface graphique Windows .NET en C ++.
Voir le didacticiel suivant de MSDN . Vous pouvez télécharger tout ce dont vous avez besoin (Visual C ++ Express) pour gratuitement .
Bien sûr, vous vous liez à .NET, mais si vous ne faites que jouer ou si vous n'avez besoin que d'une application Windows, tout ira bien (la plupart des gens ont encore Windows ... pour l'instant).
la source
J'utilise FLTK car Qt n'est pas gratuit. Je ne choisis pas wxWidgets , car mon premier test avec un simple Hello, World! programme produit un exécutable de 24 Mo, FLTK 0,8 Mo ...
la source