Frage Was sind einige der "besten" plattformübergreifenden C ++ - UI-Toolkits? [geschlossen]


Ich schreibe ein leistungsstarkes System in tragbaren modernen C ++. Eine Menge von STL und Boost. Ich möchte beginnen, einige Frontends zu diesem System zu bauen. Gewöhnlich würde ich eine Nicht-C ++ - Lösung für eine Benutzeroberfläche verwenden, aber dies soll eine sehr leistungsfähige Benutzeroberfläche sein, was bedeutet, dass eine niedrige Latenz auf Nachrichten reagiert, eine große Menge an Nachrichten sortiert und angezeigt wird. Ich habe viel geschrieben von Echtzeit-UIs in .NET, sie erfüllen die Aufgabe ziemlich gut. Aber ich möchte wirklich, dass es plattformübergreifend ohne Tricks (wie Mono) ist und es einfach funktioniert. Was sind einige der besten Möglichkeiten, dies zu erreichen?

BEARBEITEN:

Lass mich noch einen anderen einwerfen, an den ich mich gerade erinnert habe, JUCE. Frei für nicht kommerzielle Nutzung und plattformübergreifend. Das einzige Problem ist, dass die Entwicklung von einer Person gesteuert wird, aber der Quellcode verfügbar ist.

JUCE


63
2017-12-14 01:35


Ursprung


Antworten:


Obwohl ich nicht sicher bin, was Sie mit "Tricks" meinen, kann ich Ihnen nur diese Links geben. Ob es "am besten" ist, entscheiden Sie selbst.

  • wxWidgets. Frei für kommerzielle Nutzung. Altes, aber kompatibles API-Design (keine Ausnahmen, keine Vorlagen, keine RTTI, keine Verwendung von STL). Es verwendet die nativen Widgets.
  • Qt. Moderner Rahmen. Unterstützung für SQL, für eingebettetes ECMA-Skript. Enthält einen eingebetteten Webbrowser. Widgets sind CSS-fähig und können auf transformierbare Canvas übertragen werden. Tolles Toolkit. Es ist auch schnell. Nicht frei für kommerzielle Nutzung, aber frei für Open-Source-Projekte.

    • Bearbeiten: Stand 14. Januar 2009, Nokia angekündigt um Qt in die LGPL Lizenz, wodurch Qt für die kommerzielle Nutzung verfügbar ist - kostenlos.
  • GtkMM. C ++ Bindung an das berühmte gtk + Toolkit, das als Grundlage von GNOME verwendet wird. Frei für kommerzielle (aber nicht statisch verknüpfen). Moderne C ++ API. Nur GUI-Toolkit Wie Qt zeichnet es die Widgets selbst. Dies ergibt unter Windows ein etwas schlechtes Aussehen (Qt zeichnet die Widgets ziemlich gut). Ich habe es nicht getestet, daher kann ich Ihnen die Leistung nicht sagen.

Da sind mehr. Aber ich kenne nur diejenigen, die vernünftig sind, um Ihnen von ihnen zu erzählen.


44
2017-12-14 01:45



Qt ist mit Abstand das umfassendste, gut unterstützte, plattformübergreifende C ++ - GUI-Framework, das heute existiert.


20
2017-12-14 05:16



Ich habe kürzlich fast alle oben genannten Toolkits studiert. Ich würde sagen, Qt ist bei weitem das ratsamste Toolkit zu verwenden. Ich sage "ratsam", aber nicht "am besten", weil wirklich kein Toolkit perfekt ist, im Allgemeinen gibt es keine "perfekten" Lösungen für plattformübergreifende Probleme.

Hier sind einige der Vor- und Nachteile von Qt 4.5 (aka Qt 2009.01), verfügbar unter LGPL ab Januar 2009

Vorteile:

  1. unterstützt viele Plattformen, die die bedeutendsten (ich nehme an) sind Windows, Mac OS X und Linux.
  2. sieht nativ aus (manchmal benutzt er wirklich das native Zeug unter dem auf Windows, Mac OS X und Linux. Es funktioniert wirklich gut auf Fenster. Cocoa wird auf Mac unterstützt OS X, das ist eine große Sache. Unter Mac OS X, es ist möglich, das zu machen Schnittstelle fast aussehen nicht von einheimischen Kakao zu unterscheiden Anwendungen.
  3. es kommt mit einem wirklich wirklich guten Cross-Plattform-Build-System, was viel Zeit sparen kann
  4. Es ist eine vollständige Suite, wie manche sagen, ein Anwendungs-Framework, nicht nur ein GUI-Framework. z.B. Datenbank und Netzwerk. es gibt dir sogar ein Webkit-Steuerelemente
  5. tolle großartige Dokumentation. eine der besten Arten von Dokumentation Sie kann auf GUI-Frameworks finden. es ist sogar besser als MSDN und Apple Entwicklungsreferenzen.
  6. all das andere übliche plattformübergreifende Zeug

Nachteile:

  1. es ist groß. Setup ist nicht so Quiz. Lernen braucht ein bisschen Zeit. belegt viel Speicherplatz.

15
2018-03-28 14:22



Ich glaube Ultimate ++ (du kannst auf Google einfach eine Suche nach dem Namen Ultimate ++ machen) ist sehr gut. Es nutzt die Vorteile von C ++ - Templates sehr, aber das Problem ist, dass es nur läuft und ausführbare Dateien für Windows und Linux und nicht für Mac OS erzeugt. Es hat seine IDE und seine IDE ist mit Ultimate ++ selbst geschrieben (Huhn und Ei Problem). Der Vorteil von U ++ gegenüber .NET und Mono besteht darin, dass die resultierenden Apps weniger Platz benötigen, da kein Framework installiert werden muss, damit die Apps ausgeführt werden können.


8
2017-12-14 04:52



Sie werden viele plattformübergreifende GUI-Bibliotheken für C ++ finden, aber AFAIK Qt ist die einzige echte Wahl.


7
2017-12-14 03:19



Ich habe WxWidgets immer sehr gemocht.

In Bezug auf die Antwort auf die Installation auf Windows gibt es ein paar tolle Videos auf ... http://blip.tv/file/1068698 und hier http://wxwidgets.info/video


5
2017-12-14 06:49



Eine Liste von C ++ - GUI-Toolkits finden Sie in einem alter Blogbeitrag, den ich geschrieben habe. Etwa die Hälfte von ihnen sind plattformübergreifend (über die "großen Drei"). Leider wurden einige von ihnen weitgehend aufgegeben.

Leider kommt keiner von ihnen ohne Kompromisse. IMO gibt es keine offensichtliche Wahl, wenn es um C ++ - GUI-Bibliotheken geht. Untersuchen Sie gründlich für Ihre speziellen Anforderungen.

Wenn Sie keine besonders exotischen GUI-Anwendungen benötigen, dann werden wahrscheinlich Qt, FLTK oder Gtkmm den Trick machen.


4
2017-12-15 12:36



Eine der am besten aussehenden Open-Source-Anwendungen, die ich gesehen habe, ist Singvogel. Es ist ein iTunes-ähnlicher Mediaplayer, der auf Modzilla aufgebaut ist XULRunner Rahmen.


3
2017-12-14 02:19



Ich mag wxwidgets im Allgemeinen, aber ich habe es meistens unter Linux verwendet. Ich habe vor kurzem versucht, auf Windows XP mit g ++ zu installieren und hatte eine Menge Zeit, es zu installieren.

Bearbeiten: Um ein bisschen mehr Details zu bekommen, habe ich Schwierigkeiten, es zu bauen.


3
2017-12-14 02:58