Introduction à la programmation GUI avec c
Je suis nouvelle interface graphique et la programmation dans son ensemble et pour l'instant j'ai une compréhension générale de c et que vous avez passé assez de temps à écrire des applications console.
J'essaie d'apprendre à interface graphique, mais ont jusqu'à présent échoué. J'ai essayé d'apprentissage wxwidgets (par le biais de la documentation officielle), gtk (par le biais de la documentation officielle) et win32 (faux-monnayeurs win32 tutoriel) mais n'ont pas encore tout à fait arrivé là.
J'ai encore vraiment envie, mais n'arrive pas à trouver tout de bon matériel. Que recommanderiez-vous comme point de départ pour un débutant?
La rigueur, l'exigence relative à l'utilisation de C? Est-il possible de parler de vous à l'aide de C++?
Accrochez-vous, par rapport à certaines langues, l'écriture GUI en C n'est pas facile.
Accrochez-vous, par rapport à certaines langues, l'écriture GUI en C n'est pas facile.
OriginalL'auteur silent | 2009-12-05
Vous devez vous connecter pour publier un commentaire.
Si vous êtes strictement limitée à C, vous avez seulement un peu de choix. GTK+ est probablement la méthode la plus simple pour un débutant.
Un langage orienté objet comme le C++ est plus adaptée à la programmation GUI. Si vous souhaitez utiliser le C++, je recommande fortement Qt, principalement en raison de sa très bonne documentation, avec de très bons tutoriels surtout pour les débutants.
Vraiment. De sorte que vous ne pense que C est aussi bien adapté pour la programmation GUI? Aller de l'avant et faire votre programme d'Interfaces graphiques en C, je ne vais pas vous retenir. Alors, quelle est votre recommandation pour un débutant qui veut faire certains programmation GUI?
Gtk+. Comme vous pouvez le voir dans ma réponse. Je ne sais pas pourquoi sil3nt a choisi le C (apparemment sur Windows), mais il doit avoir des raisons. Je pense que l'insistance sur une langue sur une autre est de distraire. Si le choix de la langue est vraiment une question ouverte à ce point, je vous suggère de le C# comme le meilleur moyen pour un programmeur informatique pour entrer dans la programmation GUI.
VisualBasic n'était plus orienté-objet, que C encore tout le monde pouvait utiliser pour écrire des applications avec interface graphique. Si boîtes à outils n'ont pas été écrits pour faire l'interfaçage avec eux dans C pratiquement impossible(Qt/Cacao) ou tout simplement pas prévu pour moderne interface de programmation(WinAPI), il pourrait être un morceau de gâteau. Les conseils pour passer à C++ et Objective-C pour le code de la GUI au moins est probablement valide, cependant.
OriginalL'auteur Gunther Piez
Je ne dirais pas essayer de faire de la GUI avec C. Ce n'est pas vraiment à l'aise de le faire.
Mais si vous voulez vraiment le faire. Voici un très bon tutoriel sur API de Windows.
Vous pouvez également utiliser une bibliothèque comme Allegro, il est destiné pour les jeux, mais peut également être utile dans les programmes.
Mais de la façon que je suggère, c'est, d'abord apprendre les bases de l'interface utilisateur et de l'application (ce qui signifie que l'état de la machine) de la programmation avec un langage simple (tout simple faire, personnellement, suggèrent Lua avec Löve2D plate-forme). Puis utiliser les connaissances que vous avez obtenu dans C. L'état de la machine et à l'événement, le débit sera plus difficile à saisir si vous avez à traiter avec la collecte des ordures et des pointeurs... (il est toujours possible d'apprendre).
+1 La question comprend "que recommanderiez-vous comme point de départ pour un débutant?" Par conséquent, il est parfaitement bons conseils pour lancer une mise en garde en plus de donner une réponse valable pour le reste de la question.
Je sais qu'il y a beaucoup de logiciel écrit GUI en C. Il y a aussi des applications avec interface graphique écrite en asm. Mais je ne pense pas que ce serait la meilleure façon d'essayer d'apprendre de l'interface graphique. Je pense que pour les débutants d'apprendre GUI d'abord avec quelque chose comme Lua (comme Löve2D plate-forme) serait plus benefitial que vous n'auriez pas à vous soucier de gc, les pointeurs, et d'autres trucs similaires. Quand vous savez que la base de l'événement/modèle de l'état pour les Interfaces graphiques, puis de poursuivre, c'est plus facile.
Parlant d'expérience, je dirais que trouver une simple application écrite dans votre choix du langage de programmation choisi GUI toolkit est un excellent moyen d'apprendre la programmation GUI. Je l'ai fait avec un ensemble de Mandelbrot traceur écrit en C avec GTK. Je l'ai porté sous GTK2 et mis en œuvre de nouvelles fonctionnalités (et donc de nouvelles boîtes de dialogue, etc). La clé ici est de trouver une application simple qui vous êtes raisonnablement confiant, vous pouvez se familiariser avec à ajouter ou modifier.
Meh +1 pour Allegro, -1 pour recommander des Faussaires quand il a déjà dit que cela ne fonctionnait pas.
OriginalL'auteur Egon
Je vous suggère de vous devriez essayer d'apprendre un peu de la programmation orientée objet correctement avec une langue comme l'Objective-C ou C++, depuis la programmation GUI est difficile. En particulier, même de plus en plus dans C.
Beaucoup des concepts de la programmation GUI tourne sur vous de savoir comment fonctionnent les objets, avec tous les widgets qui sont composées dans toute la GUI cadre, et comment ils interagissent ensemble. Il y a aussi la notion de événements qui envoie des messages à partir d'une source d'entrée à un composant graphique (ou entre deux composants graphiques).
En résumé: il devient beaucoup plus facile à lire par le biais de documents lorsque vous savez ce que les objets sont tous sur... et même alors, il y a beaucoup à prendre dans.
OriginalL'auteur Spoike
Si vous voulez apprendre la programmation GUI sous Windows en C, la bonne nouvelle est que l'API native est basé sur C. La mauvaise nouvelle, c'est que l'API native n'est pas exactement un modèle de clarté et de cohérence. Il est beaucoup plus facile de commencer avec un OO cadre bâti au sommet de l'API.
Cela étant dit, si vous voulez continuer à apprendre Windows GUI programmation en C, votre meilleur pari est Petzold La Programmation Windows. Il va vous apprendre la programmation Windows en général, y compris tous les GUI des choses, à l'aide de l'API native.
OriginalL'auteur Ferruccio
Je vais vous recommandons d'aller retour à gtk+ et essayer plus. Pourquoi?
Car il existe une multitude de logiciels open source disponible pour Linux et Windows écrit en C en utilisant les bibliothèques gtk+ pour l'interface graphique. De grosses applications comme le GIMP et GnuCash, les petits outils, le code source est disponible, que vous pouvez lire pour savoir comment ils peuvent accomplir certains exploits. Si ils ont mis le meilleur exemple de la façon d'accomplir quelque chose est une autre question, mais au moins, vous avez l'avantage de voir comment le logiciel de travail fait sa chose.
Aussi, gtk+ comprend glib, qui est un outil pratique d'avoir à disposition pour le traitement commun des structures de données et algorithmes. Ainsi, au lieu de passer votre temps à la mise en œuvre de listes chaînées et des trucs, vous pouvez simplement utiliser celles de la bibliothèque et de votre codage de temps est consacré à la résolution de vos propres puzzles.
Gtk+ documentation n'est guère parfait, mais il est décent. Il y a un liste de diffusion pour les développeurs d'applications.
OriginalL'auteur mlibby
La chose à savoir est que l'interface graphique n'est pas intégré dans C (comme vous l'avez sans doute déjà trouvé), mais est boulonné sur la via diverses bibliothèques. wxWindows, qt, gtk et bien sûr la VCL sont de grands joueurs. Alors qu'ils font tous la même chose, ils sont tous différents dans le détail.
Quelque chose d'important à savoir est que si vous étiez à programmer en C++, vous auriez accès à certains orientée objet des wrappers pour ces et d'autres bibliothèques que pourrait faire de votre vie un peu plus facile. "plaine" C est parfois regardé vers le bas sur la "vieille école" ces jours-ci, et le support n'est pas assez "vivant" - si le GUI bibliothèques sont excellents dans leur propre droit.
Ce que je recommande que vous naviguez sur le net pour des descriptions et des comparaisons de GUI, de bibliothèques et d'évaluer vos résultats à l'encontre de vos besoins personnels. Votre stuff exécuter uniquement sur Windows, ou voulez-vous de croix-plate-forme? Les licences sont-elles un problème? Voulez-vous petit et simple (et peut-être pas si sexy) ou voulez-vous le GUI pour mettre fin à toutes les Interfaces graphiques?
Avoir choisi un gagnant, le travail par le biais de tutoriels en ligne ou des exemples. Si vous parvenez à obtenir l'essentiel et peut se programme dans le style requis, prenez une mort de l'arbre-livre pour apprendre en profondeur et de comprendre dans le détail.
OriginalL'auteur Carl Smotricz
La lecture d'un livre ne fera que vous obtenez jusqu'à présent. Pour le prendre au prochain niveau, vous avez juste besoin d'expérimenter avec ce que l'API peut faire. Bien que vous pouvez obtenir tous vers le bas à l'API Win32 niveau de votre interface graphique, mais si votre tout juste de commencer juste se concentrer sur essayer différentes techniques.
Vous allez vite trouver ce qui fonctionne et ce qui ne fonctionne pas.
Si je recommande un livre que je recommanderais à un non technique du livre.
La Conception Des Choses De Tous Les Jours
Suivant est une vidéo post cast, plus psychologique aperçu de la conception d'une interface graphique et de la façon de faire de vos utilisateurs et vous heureux.
Entreprise de logiciels de Joel Spolsky
Dernier, ce livre vous aidera à comprendre que, quand vous faites des applications de conception que les gens vont voir votre asthetic des décisions et des choix par l'intermédiaire de leurs propres valeurs culturelles. Donc, il est important de choisir un asthetic le thème de la conception de votre application et de rester avec elle.
Le Code De Culture
OriginalL'auteur Chad
+1 pour GTK. Si vous êtes lié à l'utilisation de C, que ce soit par le biais de votre propre choix ou les exigences d'un projet, vous pouvez avoir un moment difficile de faire mieux que GTK+. QT est la plupart du temps C++, donc si C est ok c'est une option. Mais les docs pour GTK+ ne sont pas aussi mauvais que les projets open source en aller, et il y a beaucoup d'exemple de code là à regarder.
Si vous avez un choix de changement de langue il y a d'autres options de Cacao est un excellent GUI environnement de programmation sur Mac (je n'ai jamais essayé de Cacao pour windows, mais nous avons entendu que c'est possible.) et Objective-C se prête bien à la programmation GUI.
OriginalL'auteur alesplin
Je vous suggère également de l'étude sur la Programmation événementielle. Dans de nombreux programmes graphiques, le principal programme attend un événement, comme un clic de souris, pour arriver ensuite les processus de l'événement. L'événement de la Conduite de la Programmation est très différentes de celle de l'Exécution Séquentielle de programmation.
D'autres sujets à l'étude sont Multi-thread et Multi-tâche de programmation. De nombreux objets graphiques (widgets), tel qu'un bouton, faire passer des messages à d'autres objets; ou la diffusion à tous les auditeurs. Le Message qui passe est un processus commun en Multi-thread et Multi-tâche de programmation.
OriginalL'auteur Thomas Matthews
Je recommande Cimg bibliothèque qui est open source et très mettre en plein dans le 2 AVAIT de l'interface graphique et de traitement de l'image :
Ce document est pour Cimg.
Cimg est plus simple bibliothèque graphique que je vois . Voyez-vous Cimg bibliothèque ?
et sinon, comment proposez-vous pour apprendre ce qu'est le vrai écrite logiciel devrait ressembler? Au moins avec l'open source, la lecture du code est une option. À la lecture de tout le code est mieux que de simplement s'aventurer hors dans le vide, et d'avoir à tout comprendre à partir de zéro ou en utilisant simplement trivial exemples de livres et des tutoriels.
Le plus gros problème que je vois est qu'est le C++ et pas en C que l'OP a demandé...
Dans le langage C++ région je recommande John Carmack moteur de Quake 3 écrit dans la plupart des C. Ensuite, je recommanderais la Demi-vie de 2 SDK. Adobe produits open source (même Si je suis réticent à le recommander). La raison pourquoi je vous recommande TOUT commercial produit logiciel sur l'open source est la différence culturelle et les valeurs culturelles. La raison pour l'observation commerciale des produits parce qu'ils sont un succès et que la base de code est exécuté sur des millions de machines! C'est quelque chose en soi.
OriginalL'auteur Sajad Bahmani