Question

Je l'ai déjà écrit un programme C ++ et je voudrais écrire une interface graphique pour elle. Je me rends compte Qt est un outil merveilleux, mais, Qt a ses propres classes, qui me font assez confus. par exemple: au lieu de chaîne, Qt a une classe nommée QString ..

Je me demande si je peux mélanger le code C ++ et le code Qt en C ++?

Était-ce utile?

La solution

Oui, vous pouvez mélanger Qt et STL très facilement.

L'interface prend QStrings mais silencieusement créer ces formes std::string ou char*, QStrings retour de Qt peut être converti avec toStdString() ou toAscii().

Qt comprend un ensemble de classes de collecte, mais vous ne devez pas les utiliser.

Qt fait un bon travail de la recherche comme C moderne ++, il y a quelques « extras » pour gérer le mécanisme de signal et l'événement de fente, mais ceux-ci sont plus une complication à l'environnement de construction que le code.

modifier: facture de remerciements

Autres conseils

Je recommande l'habitude de mélanger std c ++ code et le code Qt ensemble.

Disons que, votre code C ++ est la logique alors le code Qt, devrait être juste pour l'interface graphique. L'utilisation d'un modèles MVC / MVP ou même, séparer votre logique et l'interface utilisateur.

Ainsi, il serait plus facile à l'avenir être en mesure d'exécuter votre code avec / sans utiliser une interface utilisateur.

En bref, oui vous pouvez! par exemple, un QString est essentiellement une chaîne et a une méthode ToAscii (), de sorte que vous pouvez facilement utiliser Qt pour vos projets. Bien que vous pourriez rencontrer des problèmes d'intégration Qt dans Visual Studio (en supposant que vous utilisez), vous serez en mesure de mélanger le code C ++ et le code Qt (qui est en c ++)

ouais! Qt est quelque chose que vous pouvez utiliser dans votre code C ++. Qt est principalement pour l'interface graphique, mais il est bon pour les classes Socket, conteneurs, réseau, ... Vous êtes libre d'utiliser STL et d'autres classes normales ou celles de Qt vous offre. Le plus grand point est que si vous utilisez Qt dans votre code avant la principale Compile vous devriez faire une compilation méta pour le rendre prêt pour vous compilateur. Une chose que vous devez noter est que Qt est pas standard, cela signifie bien qu'il est compatible avec Windows, Linux et Mac OS, il ne sera pas utilisable sur d'autres plates-formes.

Ils peuvent être utilisés ensemble.

C ++ a une longue histoire et la mise en œuvre de la STL et de soutien ont évolué avec la langue. Je pense que l'équipe ex-Trolltech a décidé qu'ils ne disposaient pas assez de contrôle sur la qualité et la disponibilité des implémentations de STL pour rendre la bibliothèque Qt en dépendent. Le résultat est que Qt a son propre QTL, en-tête QtAlgorithms et QString.

Ils ont pris soin de les rendre compatibles avec le TSL:

  • la plupart des conteneurs ont une interface similaire à ceux de la STL (par exemple: accès itérateur, push_back (), vide (), etc)
  • conteneurs Qt peuvent être convertis en / de conteneurs STL (par exemple: QVector :: toStdVector, QList :: fromStdList)
  • conteneurs Qt peuvent être utilisés avec des algorithmes de STL
  • QString peut être converti en / de std :: string et std :: wstring avec toStd (W) Chaîne / fromStd (W) Chaîne

Personnellement, j'aime QString plus de std :: string, il est plus facile à utiliser et plus puissant.

Oui, vous pouvez.

En fait, je fait une interface graphique Qt-enveloppe pour un ensemble de fonctions à base C. Aucun problème avec l'intégration Qt, seul le faible niveau C (qui manque de mémoire ...).

Voir ici: http://code.google.com/p/qhocr/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top