Frage

Ich habe bereits eine C ++ geschriebenes Programm, und ich möchte eine GUI für sie schreiben. Ich weiß, Qt ist ein wunderbares Werkzeug, aber Qt seine eigene Klassen hat, was mich ziemlich verwirrt zu machen. zB: statt String, hat Qt eine Klasse QString ..

Ich frage mich, ob ich C mischen ++ Code und Qt-Code in C ++?

War es hilfreich?

Lösung

Ja, Sie können sehr leicht Qt und STL miteinander vermischen.

Die GUI nimmt QStrings aber diese Form std::string oder char* leise erstellen, QStrings von Qt zurückgegeben wird, kann mit toStdString() oder toAscii() umgewandelt werden.

Qt enthält eine Reihe von Collection-Klassen, aber Sie müssen sie nicht benutzen.

Qt macht einen guten Job wie moderne C ++ suchen, gibt es ein paar ‚Extras‘ das Signal und Schlitzereignismechanismus zu handhaben, aber diese sind eine Komplikation auf die Build-Umgebung als auf den Code.

edit: Dank Rechnung

Andere Tipps

Ich werde nicht zusammen empfehlen std c ++ Code und Qt Code mischen.

Lassen Sie uns sagen, Ihr c ++ Code ist die Logik dann die Qt-Code, sollte nur für GUI sein. Unter Verwendung eines MVC / MVP-Muster oder auch, trennen Sie Ihre Logik und UI.

So wäre es in Zukunft leichter sein, um Ihren Code mit / laufen, ohne eine Benutzeroberfläche verwendet wird.

kurz gesagt, ja Sie können! zum Beispiel ist ein QString eine Zeichenfolge im Wesentlichen und ein ToASCII () -Methode hat, so dass Sie leicht Qt für Ihre Projekte verwenden können. Obwohl Sie in einige Probleme laufen KÖNNTEN Qt in Visual Studio Integration (vorausgesetzt, Sie es verwenden), können Sie c mischen ++ Code und Qt-Code (die in c ++)

yeah! Qt ist etwas, das Sie in Ihrem C ++ Code verwenden können. Qt ist in erster Linie für die GUI, aber es ist gut, Klassen für Sockel, Behälter, Netzwerk, ... Sie sind frei, STL und andere normale Klassen zu verwenden, oder die, die Qt bietet Ihnen. Der größte Punkt ist, dass, wenn Sie Qt in Ihrem Code vor dem Haupt Compile verwenden, sollten Sie eine Meta-Kompilierung tun, um es für Sie Compiler bereit zu machen. Eine Sache, die Sie sollten beachten, dass Qt nicht Standard ist es bedeutet, obwohl es unterstützt Windows, Linux und Mac OS, wird es nicht auf anderen Plattformen einsetzbar sein.

Sie können zusammen verwendet werden.

C ++ hat eine lange Geschichte und die STL-Implementierung und Unterstützung bei der Sprache entwickelt hat. Ich denke, dass das Ex-Trolltech Team entschieden, dass sie nicht genug Kontrolle über die Qualität und Verfügbarkeit von STL-Implementierungen haben die Qt-Bibliothek von ihm abhängig zu machen. Das Ergebnis ist, dass Qt seine eigene QTL hat, QtAlgorithms Header und QString.

Sie haben darauf geachtet, sie kompatibel mit dem STL zu machen:

  • Die meisten Container haben eine ähnliche Schnittstelle zu den STL diejenigen (z: Iterator-Zugang, push_back (), empty (), usw.)
  • Qt-Container können zu / von STL-Container überführt werden (z: QVector :: toStdVector, QList :: fromStdList)
  • Qt-Container können mit STL-Algorithmen verwendet werden
  • kann QString umgewandelt werden / von std :: string und std :: wstring mit toStd (W) String / fromStd (W) String

Ich persönlich wie QString mehr als std :: string, es ist einfacher zu bedienen und leistungsfähiger.

Ja, Sie können.

Ich habe tatsächlich einen Qt-GUI-Wrapper für einen Satz von C basierten Funktionen. Keine Probleme mit der Qt-Integration nur der niedrigen Pegel C (das Speicherleck ...).

Siehe hier: http://code.google.com/p/qhocr/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top