GUI avec C++ ? ou C# et Java le chemin à parcourir?
Je suis presque faite avec un cours sur l'utilisation de la programmation orientée objet en C++ et tous les programmes que nous avons écrit dans ce cours ont été les applications de console . J'ai aussi terminé un cours universitaire dans la programmation en C donc je pense avoir de solides bases de la programmation en C et c'est maintenant le temps de faire un grand pas vers l'interface graphique .
J'ai fait beaucoup de recherches sur google et à chaque fois j'ai lu plusieurs pages je obtenir plus confus , j'ai appris qu'il y avait trop célèbre options dans le passé qui sont WinAPI et MFC. J'ai essayé de regarder dans la WinAPI, mais Il semble assez difficile et nécessite beaucoup de temps alors j'ai demandé à ma prof de conseils et il m'a dit que Si je veux écrire des programmes graphiques je ferais mieux d'apprendre le C# ou Java plutôt que d'utiliser le C++ qui est plus rapide mais mieux conçu pour la programmation de bas niveau des applications comme les conducteurs . J'ai donc cherché sur le web pour trouver si le C++ est toujours utilisé dans l'écriture de nos jours des applications et à ma grande surprise, Firefox, Google Chrome, Notepad++ et de nombreuses autres applications GUI sur sourceforge.net sont écrits en C++ en contradiction avec mon instructeur de conseils.
Aussi, j'ai appris que vous pouvez utiliser QT ou GTK bibliothèques pour créer des applications avec interface graphique en C++, mais je n'ai aucune idée de ux de le faire ou si c'est vrai.
Donc Ma question est: quels sont aujourd'hui les meilleures options disponibles pour écrire des programmes graphiques efficacement n'importe comment raide de la courbe d'apprentissage. J'ai googlé pour C++ GUI options, car Il pense qu'il sera plus rapide que Java ou C# apps, Si quelqu'un a une opinion différente de l'état s'il vous plaît.
WinAPI, pas d'API. API est un terme générique.
Je voulais dire WinAPI . Merci pour la correction
Je voulais dire par la solidité de la façon dont le programme de réponse, comme quand Firefox a d'abord été publié, il a été beaucoup plus rapide qu'IE .
Je pense que Firefox réactivité réside dans l'efficacité des algorithmes utilisés, et ni dans le GUI toolkit ni dans le langage de programmation utilisé. Alors que sûrement C++ est plus proche de métal et de doit travailler plus rapidement dans la plupart des cas, ayant le même algorithme implémenté en C++, Java et C#, vous ne remarquerez pas de grande différence dans les vitesses d'exécution.
OriginalL'auteur Ahmed | 2010-07-29
Vous devez vous connecter pour publier un commentaire.
Le moyen le plus rapide est d'utiliser le C# et WPF. C'est simple et rapide pour les petites applications, mais peut être assez complexe à mon avis, et il y a beaucoup à apprendre. Au moins vous êtes l'avenir, Microsoft pousse WPF eux-mêmes finalement. (Visual Studio utilise, et il y aura beaucoup plus de versions à venir)
Le seul véritable inconvénient est que vous serez en mesure d'exécuter l'application dans Windows.
Si vous voulez vraiment le "faible" au niveau de l'accès, il y a beaucoup d'interopérabilité des options avec du code C++.
"Le moyen le plus rapide" ici est que le temps de votre développeur d'applications. Je crois que ces applications peuvent utiliser des ressources de l'ordinateur ainsi que de courir aussi vite que les applications écrites en C++ et WinAPI. C'est pourquoi Firefox, Chrome, et de nombreux autres célèbres applications de toujours utiliser C++.
Qui n'a pas de sens . Vous dites que C# est plus rapide dans le développement et aussi rapide que du C++ et de la WinAPI dans un programme d'intervention et de l'efficacité , même Si les gens utilisent C++
Généralement, les gens disent que C++ PEUT être 10% plus rapide, mais vous devez être un très bon, C++ expert de l'expérience (ou même plus besoin) ce genre de petit gain de performance. C# permet de réduire votre temps de développement et les performances devraient être plus que suffisant pour pratiquement toutes les applications, sauf à la pointe de la recherche scientifique ou des jeux.
-1 "le moyen Le plus rapide est d'utiliser le C# et WPF."
OriginalL'auteur Blub
Tout d'abord, si vous voulez maigre à écrire plate-forme indépendante de GUI puis C# est pas aller.
Lorsque vous écrivez une GUI en C++ il y a une question de la trousse à outils, Qt et z gtkmm vous fournir très solide de la croix-plate-forme de boîtes à outils. Alors que Qt est plus "natif" look and feel sur Windows que z gtkmm, Java Swing vous permet d'écrire très bonne interface graphique, mais il serait plus lourd et plus lent que celui écrit avec Qt ou z gtkmm.
Maintenant... C#/WPF mêmes problèmes que Java GUI - plus lent que le natif de, mais aussi il impose aussi à vous sur une seule plate-forme.
Mon conseil personnel, commencer à partir de Qt.
récente Qt version distribuée sous licence LGPL, de sorte que vous pouvez l'utiliser presque sans limites, aussi longtemps que vous le lien avec de façon dynamique.
J'ai entendu dire que vous pouvez utiliser en mono.
OriginalL'auteur Artyom
Si vous êtes nouveau à l'interface de programmation C#/WinForms sera le mieux pour vous. Il assez simple, avoir une grande communauté autour d'elle, beaucoup de prêt-à-utiliser des contrôles.. et le meilleur de la documentation toujours MSDN.
Sûr, si vous êtes à la recherche pour la connaissance profonde de "comment ça fonctionne" ensuite, vous devez comprendre Win32 GUI. Ainsi, vous pouvez toujours revenir à C++/MFC. Je ne voudrais pas suggérer les autres bibliothèques C++ (Qt), non pas parce qu'ils sont mauvais, mais parce qu'ils nécessitent une bonne expérience pour démarrer.
Ma suggestion est de commencer avec les WinForms, comprendre la base et apprendre à créer des application simple. Dès que vous êtes maître en cela, aller plus en profondeur 🙂
Je me souviens de mon temps que je suis passé de Borland C++ Builder, Visual Studio MFC.. de dieu 🙂
OriginalL'auteur Alexander Beletsky
Essayer Juce.
OriginalL'auteur SKINDER
Cela dépend du type de l'interface graphique de l'application que vous souhaitez écrire. Si vous voulez écrire un film rétractable application comme MS Word ou Firefox, puis C++ est le chemin à parcourir, car la demande du marché de la dernière peu de performance, avec un minimum de dépendances. Otoh, que, si vous voulez écrire (par exemple) une interface à votre entreprise de base de données, les performances de l'interface graphique est normalement pas important, mais la diffusion de quelque chose rapidement et à moindre coût, vous devez utiliser quelque chose de plus RAD, comme C#.
OriginalL'auteur
Qt est très bon. Les gens disent WTL est aussi très agréable, mais je ne l'ai pas utilisé.
De Java et de l'interface graphique ne rentre pas très bien dans ma tête. Il y a quelques natif de Java GUI bibliothèques (AWT, Swing), mais ils sont lents et ne fournit pas d'interface native de la plate-forme, il fonctionne sur. Il est également SWT, qui est utilisé par Eclipse, mais je n'ai pas vu de n'importe quelle application en dehors de l'Éclipse de l'utiliser.
Si GUI besoins sont simples, je garderais pour C#: vous déposez des contrôles sur votre formulaire, écrire certaines des logiques derrière elle et vous êtes prêt à aller. Si vous avez besoin de quelques très complexe GUI, alors je ne pense pas qu'il y aura une énorme différence dans les temps de développement entre les différentes langues.
Dois admettre que Java n'est pas très fort pour construire des applications de bureau. Bâton avec C# si vous voulez un développement rapide de l'environnement.
Qt n'est pas seulement à propos de l'interface graphique. C'est un framework qui permet de créer des applications multiplateformes, (il a beaucoup de classes utilitaires ne sont pas liées à l'interface graphique). Comme pour les exemples: Qt Creator - un IDE pour le développement de Qt est écrite à l'aide de Qt.
SWT est très agréable, et serait sans doute un bon point de départ. Comme eclipse montre, vous pouvez réaliser des interfaces graphiques.
OriginalL'auteur n0rd
C++ est bon pour la vitesse de rendu HTML des outils tels que google chrome /firefox ou éditeurs d'image comme photoshop) et pour la réalisation de "dons" vous pourraient autrement ne pas être en mesure de le faire sur d'autres plates-formes.
Mais il est de plus en plus pénible à utiliser et il est beaucoup plus d'une luearning courbe sur tout le C++ INTERFACE utilisateur basée sur les bibliothèques que vous aurez à apprendre.
Puisque vous ne semblez pas besoin de tout cela, comme il est clair à partir de votre question, votre choix par défaut doit être C# ou Java, ou basé sur le Web, comme votre tuteur conseillé.
QT pourrait être un cas particulier - je ne le sais que je ne l'ai pas utilisé. Mais pourquoi de la difficulté avec le C++ et la gestion de la mémoire lors de l'obvioulsy l'utilisateur doit simplement un outil pour construire une INTERFACE utilisateur. L'OP n'a pas même une INTERFACE spécifique à chaque cas d'utilisation, en plus d'une C++ spécifique de cas d'utilisation.
l'intervalle Qt de gestion de la mémoire de modèle est très soigné. Si vous héritez d'un objet dans le cadre et son parent à un autre objet dans le cadre, vous aurez rarement besoin de gérer de la mémoire sur votre propre. Pour le cas lorsque vous le faites, il y a de pointeur intelligent classes. Il y a de très bonnes raisons de l'utilisation de Qt et de très bonnes raisons de ne pas utiliser Qt. Je dis juste que malgré la langue, c'est un grand cadre.
OriginalL'auteur computinglife
C++ ne meurt jamais, alors que l'apprentissage n'est pas une mauvaise décision. Cependant, il est assez difficile d'écrire des applications avec interface graphique à l'aide de C++ pendant les premiers jours. Par conséquent, je vous suggère d'utiliser le C# t écrire des applications avec interface graphique, avant de passer à C++.
OriginalL'auteur Truong Ha
Pas exactement la réponse à votre question, mais si vous êtes encore dans l'apprentissage, et non dans la ligne de production, essayez d'apprendre à Gagner de l'API. En fait, je suis surpris que personne ne vous a dit que.
Vous voir, tous les autres cadres /API /Sdk sont en fait juste des wrappers autour de cette API, et les chances sont qu'à chaque fois que vous êtes invité à faire quelque chose de non-standard dans votre interface utilisateur graphique vous ne trouverez pas de solution à l'intérieur de votre cadre et ont besoin de creuser pour Gagner de l'API de toute façon.
Oui, il fonctionne uniquement sous Windows API, toujours de savoir ce qui se passe réellement dans les coulisses de la scène peut être très pratique à la fois.
Juste mes 2 cents.
OriginalL'auteur Flot2011
Si vous vous décidez pour C++, avoir un regard sur wxwidgets - de cette façon, vous ne vous limitez pas à un seul système d'exploitation (windows, dans ce cas, avec MFC). Aussi QT devrait être bon, mais je n'ai jamais essayé (je n'ai pas beaucoup d'expérience avec wxwidgets, mais les quelques fois où j'ai dû faire quelque chose avec eux, ils ont très bien).
Si vous n'avez pas besoin de performances élevées dans l'interface graphique, avoir un regard sur les langages de script Python dispose d'une bibliothèque par défaut qui fonctionne bien (tkinter) et également obligatoire pour wxwidgets
OriginalL'auteur Nicola Montecchio
Si vous insistez sur l'utilisation de C++, essayez Win32 ou GTK. Voir ce fil.
Sinon, je vous recommande d'essayer un autre langage comme Python pour la partie interface utilisateur de vos applications: Garder le reste dans la langue de votre choix et de les emballer. N'oubliez pas, la meilleure caractéristique de C++: la compatibilité binaire avec C.
OriginalL'auteur Matt Joiner
Si vous avez le c++ de la fondation et qui veulent étendre que je vous recommande de commencer à partir de Qt. C'est la distribution comprend graphique de l'INTERFACE utilisateur concepteur et Asistant - navigateur pour la documentation. Il est également séparé du produit de Qt Creator - complet IDE sur mesure pour Qt qui ont tout intégré (y compris le compilateur). Tous les de ce si gratuit et très facile à l'installation. D'excellents tutoriels inclus. Qt inclut également des non classes gui pour le commun des problèmes de programmation (comme des conteneurs, de type variant, etc.). Vous pouvez convertir votre application console GUI dans une affaire de quelques heures et de décider si vous voulez continuer à apprendre ou essayer d'autres outils.
Il suffit d'aller à http://qt.nokia.com/downloads télécharger le kit de développement logiciel, de l'installer et vous avez everyting de commencer à coder.
OriginalL'auteur Oleg Kolosov
QT est gentil, mais j'ai essayé de JUCE et maintenant, je pense que c'est mieux.
JUCE est rapide, propre et facile à utiliser. Vous pouvez l'intégrer avec Eclipse et GCC (et minGW), utiliser les fonctionnalités de débogage (gdb sous Eclipse) et plus.
Vous pouvez compiler votre code sous Windows, Linux, OSX, IOS et Androis sans fait beaucoup de changements.
Garder un oeil sur leur site:
http://www.rawmaterialsoftware.com/juce.php
Si vous parlez espagnol, regardez ce lien:
http://juceratot.eshost.es
Égard
OriginalL'auteur César Ortiz