Utilisez-vous Qt et pourquoi l'utilisez-vous? [fermé]

Pros. et les inconvénients? combien de temps l'utilisez-vous? Qu'en est jambi?

24
demandé sur Jonik 2008-09-23 22:55:03

8 réponses

j'ai utilisé Qt sur quelques projets que j'ai fait en c++ sur plusieurs plates-formes sur une période de sept ans. Je pense que cela fonctionne assez bien et était certainement plus rapide pour moi de développer une application GUI décente sur le Mac que de marcher à travers un langage que je ne connaissais pas (Objectif-C) à l'époque.

je pense que le mécanisme signal/slot est un peu funky mais n'est pas horrible. Une fois que vous l'utilisez un peu, ce n'est pas un bouchon de spectacle. La chose de connexion est facile à bungle up (ou du moins il était) et il est toujours bon de vérifier le retour sur ceux parce que votre application va aller joyeusement sur son chemin et ne pas vous dire que cela n'a pas fonctionné.

Je n'ai jamais utilisé jambi.

11
répondu itsmatt 2008-09-23 19:02:18

j'utilise Qt depuis plusieurs années pour le développement commercial et j'en suis très satisfait.

une des bonnes choses avec Qt est qu'il fournit un grand ensemble de bibliothèques ainsi que les trucs GUI (parsing XML, threads, networking), le tout dans un style cohérent et tout multi-plate-forme. Cela signifie que nous avons rarement besoin d'utiliser d'autres bibliothèques, bien que nous n'utiliser boost pour certaines choses.

  • le système de traduction Qt, utilisant linguist est facile à utiliser et rend le soutien de plusieurs langues facile (bien sûr, vous devez encore traduire les chaînes qui est beaucoup de travail!)
  • le système de mise en page GUI où les widgets se redimensionnent selon une mise en page rend tout beaucoup plus facile. Dans différentes langues la longueur des cordes est différente. Avec des widgets de taille fixe (comme MFC) chaque dialogue doit être ajusté pour chaque langue, sinon des parties d'étiquettes sont coupées. Avec Qt, ils se redimensionnent. Bien sûr, il ya des cas où cela ne fonctionne pas exactement mais encore, elle rend tout beaucoup plus facile.
  • QString fait tout en Unicode et gère très facilement les conversions de différents codecs.

Une chose qui a été très l'accès à la source est précieux, bien que cela ne soit certainement pas unique à Qt. À plusieurs reprises, la capacité de vérifier la source de Qt a expliqué un comportement étrange ou donné un indice sur la façon d'accomplir quelque chose.

nous avons trouvé quelques bugs dans Qt, dont certains ont été corrigés après avoir signalé à Trolltech. Dans d'autres cas, ils ont suggéré un travail autour de. Tous ont été assez obscurs et n'ont pas eu d'impact majeur sur notre développement.

l'Un des principaux les inconvénients de Qt seraient l'absence de bibliothèques tierces pour les applications commerciales. Cependant, Qt est assez complet donc, pour nous, il n'a pas été un gros problème, même si ça dépend du type d'application que vous développez.

Je n'ai pas utilisé de Jambi non plus.

29
répondu David Dibben 2008-09-24 13:35:48

Voici quelques unes de mes avantages et des Inconvénients avec Qt:

Avantages:

Croix-plate-forme

Je sais que celui-ci est toujours utilisé, mais après avoir fait des allers-retours entre Windows et Linux avec Qt, c'est incroyable le peu que j'ai à faire pour démarrer. Je pense que cela est aidé par le fait que je n'utilise Vim avec Qt Designer.



QMake

C'est l'un de mes aspects préférés du Qt. Après avoir fait travailler dans wxWidgets, FLTK,etc., Je suis tellement fatigué de jouer avec différents systèmes de construction et je ne veux pas créer manuellement mes makefiles. J'utilise CMake sur autre chose que le Qt en ce moment, mais je pense que je déplace lentement même le Qt vers CMake. Cependant, il est tout simplement si facile d'obtenir aller avec QMake.



QTestLib

J'ai regardé quelques autres cadres de test d'unités C++ et quand J'ai créé mes tests en utilisant QTestLib, j'ai eu l'impression que C'était très similaire à NUnit(C#) et en quelques minutes j'ai eu plusieurs tests de réussite. J'ai aussi remarqué qu'il serait très facile de créer mon propre intégration continue environnement.



Plus proche de Java et .Net dans la productivité

La plus grande chose que j'entends/lis les gens dire à propos du c++ est, "je peux être plus productif avec Java ou .Net". D'expérience personnelle, je peux obtenir un prototype d'une application en cours d'exécution dans Qt en utilisant Vim et Qt Designer, avant Eclipse ou visuel Studio charge même. J'ai aussi un ensemble très similaire de bibliothèques dans Qt que j'ai dans .Net ou Java et si ce n'est pas là, je peux utiliser le code C++ existant là-bas.





Cons:

Prix

C'est le plus grand facteur auquel je puisse penser en ce moment. Cependant, le coût vaut chaque centime, hum si je savais combien de centimes j'ai dû économiser sans passer un coup de fil à un représentant des ventes. J'ai acheté une licence à l'époque où ils si j'avais eu leur réduction pour les petites entreprises et que ça en valait la peine, j'aurais payé trois fois plus et je pense que c'est le prix courant.



Développer n'importe où avec une licence commerciale

J'aimerais pouvoir développer sur n'importe quelle plateforme, mais construire et vendre pour une autre plateforme. Par exemple, développer sur Linux, puis construire et déployer sur Windows si vous avez juste la licence commerciale Windows. De ce que je sais, Vous ne pouvez développer et construire une application sur la plateforme pour laquelle vous avez une licence.



Verrouillage du fournisseur

En quelque sorte, c'est plus une escroquerie personnelle. Je n'aime pas être lié à un vendeur en particulier parce que je suis suivi par la direction de l'entreprise et la direction du produit. TrollTech a été acheté par Nokia, est-ce bon ou mauvais Je ne sais pas, mais une entreprise de cette taille peut faire des choses mauvaises.





Je pense que je suis fait pour l'instant :). Oh, je n'ai pas utilisé de Jambi mais je suis vraiment intéressé à faire quelques projets de prototype pour découvrir combien il est facile d'utiliser un plugin développé en C++ avec Jambi. En particulier en utilisant Jambi comme interface web avec des plugins C++.

pour être honnête, je n'ai pas beaucoup lu dessus, donc c'est peut-être impossible ou très facile.

8
répondu Chris Roland 2008-10-14 20:05:40

j'ai utilisé Qt dans un travail précédent. Je n'avais eu que le plus bref contact avec Qt quelques années avant ça, donc j'étais à peu près un newb de Qt.

quand j'ai commencé, on m'a dit de choisir ma langue et mon environnement, mais le support multi-plateforme était souhaitable. J'ai essayé Qt et Java, et j'ai même essayé C# a juste pour le plaisir. Je me suis donné deux jours pour évaluer chaque option.

peut-être que j'étais un peu partial avec mon histoire en tant que développeur C++, mais après avoir dépensé temps consacré à chaque option Qt a été le seul à montrer des indices pour être utile sans une longue courbe d'apprentissage.

la documentation fournie avec Qt et les applications d'exemple a rendu très facile pour un développeur expérimenté mais QT débutant de se mettre en place et de fonctionner très rapidement. À la fin de ma période d'essai, j'ai fait faire des prototypes/maquettes de L'application finale. Avec Java / Eclipse, Java / SunStudio et C# / VS.j'ai eu du mal à obtenir quoi que ce soit de non trivial temps.

les signaux / slots ont pris un peu de temps à s'habituer, mais ce n'était pas trop mal, et j'ai écrit quelques wrappers simples à affirmer quand les connexions n'ont pas réussi à empêcher les fautes de frappe stupides d'arrêter l'application. de travail.

l'autre chose que j'ai aimé est que Qt avait presque tout ce dont j'avais besoin. Vous l'appelez-stockage, réseau, GUI, threading, containers-Qt a une classe pour traiter avec elle. Quel IMHO est important parce que le mélange des bibliothèques peut parfois causer des problèmes.

le code source de Qt était un gros plus, un pour le simple plaisir de l'intérêt, mais aussi il m'a permis de compiler Qt en utilisant le compilateur et les paramètres de mon choix, y compris une version de débogage à utiliser pendant le développement.

J'ai aussi trouvé le soutien de Trolltech assez bon. J'ai soulevé quelques bugs sur Qt, dont un a été corrigé et publié alors que je travaillais encore sur le projet (seulement un travail de 6 mois).

le seul négatif dont je me souviens était la difficulté de déboguer Qt objets (en utilisant VS) - il y a un plugin Qt pour VS qui peut examiner les objets Qt mais j'utilisais la version libre de VS et les plugins ne fonctionnent pas pour cela. Mais ce n'était pas la faute de Qt.

Je n'ai pas utilisé jambi donc je ne peux pas commenter.

4
répondu Rodyland 2008-09-26 00:24:21

sur C++ vos seules autres alternatives sont MFC et wxWidgets. QT / wxWidgets est en grande partie une préférence personnelle. Je pense que QT est une conception propre avec une bonne documentation.

QT coûte environ un mois de salaire de développeur si vous ne l'utilisez pas pour la GPL.

3
répondu Martin Beckett 2008-09-24 00:16:10

j'utilise Qt pour plus de deux ans maintenant.

Choses que j'aime sur l'intervalle Qt:

  • programmation facile de L'interface graphique (par rapport à MFC), Qt Designer
  • Nice les classes conteneur
  • de jolis graphismes scène de cadre
  • Excellente documentation avec des exemples utiles
  • soutien à la traduction
  • Bon support technique

je la recommande fortement l' Qt Developer Days. Si vous avez un chance de participer, alors faites-le! Beaucoup de belles et de très intéressantes discussions.

3
répondu Thomas Koschel 2008-09-25 21:50:56

Qt est une bibliothèque très agréable, mais elle a une licence de développeur par place coûteuse, donc elle n'est pas toujours utile pour tous les projets.

0
répondu adum 2008-09-24 00:05:04

ne l'utilisez pas, cependant...

Pro: QT a une mise en page optionnelle en 3 phases, où as WX ne permet que 2 Actuellement (je pense qu'ils prévoient de faire 3 phases, juste ne l'ont pas encore travaillé).

l'un des plus gros problèmes avec l'utilisation de layouts est le texte statique et l'emballage. WX demande Quelle est la taille de votre Min Largeur / Hauteur et portions sur l'écran, QT a l'option de dire quelle largeur vous voulez, quelle hauteur vous avez besoin d'être si votre X Large. Cela permet d'exprimer le flux d'une page beaucoup mieux.

0
répondu Greg Domjan 2009-03-30 12:53:30