2009-08-09 10 views
26

Ich bin daran interessiert, Qt zu lernen. Ich bin ziemlich gut mit C++, STL und Boost. Ich mag STL/Boost-Stil sehr, und ich benutze sie mit C++, wann immer ich in Uni-Projekten kann. Ich vermisse jedoch immer die GUI. Es scheint, dass Qt in meinem Fall die beste Lösung ist. Qt hat eine gute Sammlung von Containern, aber ich kenne STL/Boost-Sachen sehr gut.Funktioniert Qt gut mit STL & Boost?

Worauf sollte ich achten, wenn ich Qt lerne und es gleichzeitig mit STL/Boost verwende?

Antwort

32

Ja, Qt funktioniert gut mit Boost und der STL. Der Großteil der STL-Funktionalität ist in Qt dupliziert, um sicherzustellen, dass solche Funktionen auf allen Plattformen unterstützt werden, die Qt unterstützen. Nichts verbietet Ihnen jedoch die Verwendung von STL/Boost-Gegenstücken der Qt-Konstrukte oder -Funktionen darin, die Qt fehlen.

Obwohl Qt eigene String-, Container- und Algorithmus-Objekte hat, enthält es auch eine Menge Funktionen für die Kompatibilität mit STL. Zum Beispiel kann ein QString in eine std :: string konvertiert werden und ein QVector kann mit std :: for_each verwendet werden. Qt enthält auch einige Funktionen, die sich mit Boost überschneiden, wie zB QPointer (vergleiche/contrast mit std: auto_ptr und boost: shared_ptr).

Der Artikel Creating Custom Qt Types kann einige Einblicke in die Verwendung erweiterter Funktionen mit Boost-Objekten wie transmitting custom objects between threads with queued connections geben.

Siehe auch:

11

Qt neben STL ziemlich gut funktioniert, obwohl wie jeder Rahmen sie einige STL Strukturen haben musste aus der Not ersetzen (die nur eine, die Sie finden müssen, ist string/unicode). Alles von Boost funktioniert super - es ist ein großartiges Toolkit, das man zusammen benutzen kann, aber man muss mit boost :: signals vorsichtig sein, da Qt auch eine Signalimplementierung hat und die Namen sich überlappen können. Boost deckt dies in einem FAQ ab und es gibt einige Informationen auf der Website von Trolltech, wie man das Problem vermeiden kann.

+2

Qt-Dokumentation adressiert auch das Signal/Slots-Problem hier: http://doc.trolltech.com/4.5/signalsandslots.html#using-qt-with-3rd-party-signals-and-slots –

Verwandte Themen