Frage

Vorteile.und Nachteile?Wie lange benutzt du es?Was ist mit Jambi?

War es hilfreich?

Lösung

Ich habe Qt über einen Zeitraum von sieben Jahren bei einigen Projekten verwendet, die ich in C++ auf mehreren Plattformen durchgeführt habe.Ich denke, es funktioniert ziemlich gut und es war definitiv schneller für mich, eine anständige GUI-App auf dem Mac zu entwickeln, als mich durch eine Sprache zu kämpfen, die ich damals noch nicht kannte (Objective-C).

Ich finde den Signal-/Slot-Mechanismus etwas unkonventionell, aber nicht schrecklich.Sobald Sie es eine Weile verwenden, ist es kein Hingucker mehr.Der Verbindungskram kann leicht vermasselt werden (zumindest war er das), und es ist immer gut, die Ergebnisse dieser Verbindungen zu überprüfen, denn Ihre App wird fröhlich weitermachen und Ihnen nicht mitteilen, dass sie nicht funktioniert hat.

Ich habe Jambi noch nie verwendet.

Andere Tipps

Ich habe seit mehreren Jahren Qt wurde jetzt mit für die kommerzielle Entwicklung und haben mit ihm sehr zufrieden.

Eines der schönen Dinge mit Qt ist, dass es eine große Menge von Bibliotheken sowie die grafischen Oberfläche bietet (zB XML-Parsing, Fäden, Vernetzung), die alle in einem einheitlichen Stil und all Multi-Plattform. Das bedeutet, wir müssen nur selten andere Bibliotheken verwenden, obwohl wir Schub für einige Dinge nicht benutzen.

Ein weiterer sehr wichtiger Faktor für uns war die Internationalisierung. In einer früheren, MFC-basierten Anwendung hatten wir 2 lokalisierten Versionen zu erhalten, für die beiden Sprachen, die wir unterstützen. In unserer Qt-basierten App haben wir nur die eine Version.

  • Das Qt-Übersetzungssystem, Linguist verwendet, ist einfach zu bedienen und macht einfach, mehrere Sprachen unterstützt (natürlich müssen Sie noch die Fäden übersetzen, die eine Menge Arbeit!)
  • Das GUI-Layout-System, wo die Widgets selbst die Größe entsprechend ein Layout macht alles viel einfacher. In verschiedenen Sprachen ist die Länge der Saiten unterschiedlich. Mit fester Größe Widgets (wie MFC) muss jeder Dialog für jede Sprache angepasst werden, sonst Teile von Etiketten erhalten abgeschnitten. Mit Qt Größe ändern sie sich. Natürlich gibt es Fälle, wenn es nicht ganz richtig funktioniert, aber es macht immer noch alles viel einfacher.
  • QString tut alles in Unicode und übernimmt die Konvertierungen von verschiedenen Codecs sehr leicht.

Eine Sache, die sehr wertvoll gewesen ist, ist der Zugriff auf die Quelle, obwohl e dies zu Qt sicherlich nicht eindeutig ist. Bei mehreren Gelegenheiten die Möglichkeit, die Qt Quelle zu überprüfen, ein seltsames Verhalten oder gegeben hat, erklärt eine Ahnung, wie etwas zu erreichen.

Wir haben ein paar Fehler in Qt gefunden, nach der Meldung zu Trolltech von denen einige wurden behoben. In anderen Fällen haben sie eine Arbeit um vorgeschlagen. Diese waren alle ziemlich dunkel und nicht hatte einen großen Einfluss auf unsere Entwicklung.

Einer der wichtigsten Nachteile zu Qt würde für das Fehlen von 3rd-Party-Bibliotheken in kommerziellen Anwendungen. Allerdings ist Qt ziemlich vollständig so für uns ist es kein großes Problem gewesen, aber das hängt davon ab, welche Art von Anwendung, die Sie entwickeln.

Ich habe nicht verwendet entweder Jambi.

Hier sind einige meiner Vor- und Nachteile mit Qt:

Vorteile:
Cross-Plattform-
Ich weiß, das man immer verwendet wird, aber nachdem sie mit Qt hin und her zwischen Windows und Linux geht, ist es erstaunlich, wie wenig ich tun müssen aufstehen und laufen. Ich denke, dass dies durch die Tatsache geholfen ich Vim nur mit Qt Designer verwenden.

QMake
Dies ist einer meiner Lieblings-Aspekte von Qt. Nachdem ich Arbeit in wxWidgets, FLTK usw., bekomme ich so müde von Messing mit verschiedenen Build-Systeme um, und ich möchte nicht manuell meine Makefiles erstellen. Ich verwende derzeit CMake auf etwas anderes als Qt im Moment, aber ich glaube, ich langsam auch Qt über CMake bin bewegt. Allerdings ist es nur so einfach mit QMake gehend zu erhalten.

QTestLib
Ich sah ein paar andere C ++ Unit-Test-Frameworks und wenn ich meine Tests erstellt QTestLib verwenden, es fühlte sich sehr ähnlich wie NUnit (C #) und innerhalb weniger Minuten hatte ich einige der Prüfungen. Ich habe auch bemerkt, dass es wäre sehr einfach meine eigene kontinuierliche Integration Umgebung zu schaffen.

Am nächsten an Java und .Net Produktivitäts
Die größte Sache, die ich hören / lesen die Leute sagen über C ++ ist: „Ich mit Java oder .Net produktiver sein können“. Aus eigener Erfahrung kann ich einen Prototyp einer Anwendung läuft in Qt mit Vim und Qt Designer, bevor Eclipse oder Visual Studio auch Last bekommen. Ich habe auch eine sehr ähnliche Reihe von Bibliotheken in Qt, die ich in .NET oder Java haben, und wenn er nicht da ist kann ich den vorhandenen C ++ Code da draußen nutzen.


Cons :
Preis
Dies ist der größte Faktor, den ich von jetzt denken kann. Allerdings sind die Kosten ist jeden Cent wert, um, wenn ich wüsste, wie viele Cent musste ich einen Vertriebsmitarbeiter ohne einen Anruf sparen. Ich kaufte am Tag eine Lizenz zurück, wenn sie ihre kleinen Unternehmen Rabatt hatten und es war es wert dann würde ich dreimal so viel bezahlt haben und ich denke, das ist der aktuelle Preis.

Entwickeln Sie überall mit kommerzieller Lizenz
Ich würde gerne auf jeder Plattform entwickeln zu können, sondern bauen und für eine andere Plattform zu verkaufen. Zum Beispiel entwickelt unter Linux, dann auf Windows erstellen und bereitstellen, wenn Sie nur die Windows-kommerzielle Lizenz. Von dem, was ich weiß, kann man nur eine kommerzielle Anwendung auf der Plattform, die Sie eine Lizenz für haben entwickeln und bauen.

Vendor Lock-in
Nun Art, das ist eher eine persönliche con. Ich mag es nicht an einen bestimmten Anbieter gebunden zu sein, weil ich Seite von der Firma Richtung und Produktrichtung nachgeführt erhalten. TrollTech wurde von Nokia erworben hat, ist das gut oder schlecht, weiß ich nicht, aber ein Unternehmen, das eine Größe böse Dinge tun kann.


Ich glaube, ich bin fertig für jetzt :). Oh, ich habe verwendet Jambi nicht, aber ich bin wirklich daran interessiert, ein paar Prototypen Projekte tun, um herauszufinden, wie einfach es ist ein Plug-in C ++ mit Jambi entwickelt zu verwenden ist. Insbesondere unter Verwendung von Jambi als Web-Interface mit C ++ Plug-In.

Um ehrlich zu sein, ich habe nicht viel auf sich lesen, so kann es unmöglich oder sehr einfach sein.

Ich habe Qt in einem früheren Job. Ich hatte nur die absolute kürzeste Kontakt mit Qt einigen Jahren vor, dass, also war ich ziemlich ein Qt newb.

Als ich anfing, wurde mir gesagt, meine Sprache und Umgebung zu wählen, aber plattformübergreifende Unterstützung für wünschenswert. Ich habe versucht, Qt und Java, und gab sogar C # ein nur für das Heck von ihm gehen. Ich gab mir zwei Tage, um jede Option zu bewerten.

Vielleicht war ich mit meiner Geschichte als C ++ Entwickler etwas voreingenommen, aber nach auf jeder Option Zeit zu verbringen war Qt die einzigen, die keine Hinweise zeigte an, ohne eine lange Einarbeitungszeit sinnvoll zu sein.

Die Dokumentation mit Qt und den Beispielanwendungen bereitgestellt machte es sehr leicht für einen erfahrenen Entwickler aber Qt Anfänger aufstehen und läuft sehr schnell. Ich hatte UI Prototyp / Mockups der Endanwendung von Ende meiner Probezeit getan. Mit Java / Eclipse Java / SunStudio und C # / VS.net hatte ich Schwierigkeiten immer etwas nicht triviales Ereignis in dieser Zeit.

Signale / Slots gewöhnungsbedürftig, aber es war nicht so schlimm, und ich schrieb ein paar einfache Wrapper zu behaupten, wenn Verbindungen von Anhalten der App dumme Fehler zu stoppen, schlug fehl. von der Arbeit.

Die andere Sache, die ich mochte, dass Qt fast alles hatte ich brauchte. Sie nennen es - Speicher, Netzwerk, GUI, Gewindeschneiden, Container - Qt hat eine Klasse mit ihm zu beschäftigen. Welche IMHO ist wichtig, weil Bibliotheken Mischen manchmal Probleme verursachen kann.

Mit der Quellcode zu Qt war ein großer Vorteil, ein für einfach nur Interesse willen, sondern auch eine Debug-Version einschließlich es mir erlaubt, Qt mit dem Compiler und Einstellungen meiner Wahl zu erstellen, für die Verwendung bei der Entwicklung.

Ich fand auch Trolltech Unterstützung recht gut zu sein. Ich hob ein paar Bugs auf Qt, von denen festgelegt wurde und freigegeben, während ich noch an dem Projekt arbeiten (nur 6 Monate Job).

Der einzige negative ich mich erinnern kann die Schwierigkeit beim Debuggen von Qt Objekten war (mit VS) - gibt es eine Qt-Plugin für VS, die Qt-Objekte untersuchen können, aber ich war die kostenlose Version von VS mit und Plugins für sie nicht funktionieren . Aber das war nicht Qt Schuld.

Ich habe jambi nicht verwendet, so kann nicht kommentieren.

Ein C ++ Ihre einzige andere Alternativen sind MFC und wxWidgets. QT / wxWidgets ist weitgehend eine persönliche Präferenz. Ich glaube QT ein sauberes Design mit guter Dokumentation.
QT etwa ein Monat von Entwicklern Gehaltskosten, wenn Sie es nicht für GPL verwenden.

Ich habe jetzt seit über zwei Jahren Qt im Einsatz.

Dinge, die ich auf Qt mag, sind:

  • Einfache GUI-Programmierung (im Vergleich zu MFC), Qt Designer
  • Nizza Containerklassen
  • Nizza Grafikszene Rahmen
  • Hervorragende Dokumentation mit nützlichen Beispielen
  • Übersetzungs Unterstützung
  • Gute technische Unterstützung

Ich kann empfehlen, die Qt Developer Days . Wenn Sie eine Chance zur Teilnahme haben, dann tun Sie es! Viele schöne und sehr interessante Gespräche gibt.

Qt ist eine sehr schöne Bibliothek, aber es hat eine teure Pro-Arbeitsplatz-Entwickler-Lizenz, also ist es nicht immer sinnvoll für alle Projekte.

Verwenden Sie es nicht, aber ...

Pro: QT ein optionales 3-Phasen-Layout hat, wo als WX nur noch für 2 erlaubt (ich glaube, sie planen, 3 Phase zu tun, haben sie einfach nicht funktioniert in noch) nicht.

Eines der größeren Probleme bei der Verwendung von Layouts ist statischer Text und Verpackung. WX fragt, wie groß ist Ihre min Breite / Höhe und Teile aus dem Bildschirm, QT-Option zu sagen hat, wie weit wollen Sie, wie hoch schätzen Sie, wenn Ihr X breit sein müssen. Auf diese Weise können Sie den Fluss einer Seite viel besser zum Ausdruck bringen.

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