Einfachste Möglichkeit, der C ++ App eine GUI hinzuzufügen

7

Ich produziere ein Stück numerische Software in C ++ und möchte eine GUI (hauptsächlich für Windows) hinzufügen. Ich kann GUIs mit komfortablen Editoren in modernen Sprachen wie Java oder .NET erstellen. Jetzt ist meine Frage, was ist die einfachste und bequemste Möglichkeit, ein GUI-Frontend für mein Programm hinzuzufügen. Bei der Auswahl der Tools bin ich vollkommen frei (Open Source und Portabilität wäre nett), aber bitte bedenken Sie auch, wie viel Codebausteincode und Schnittstellen gepflegt werden müssen, wenn die GUI in einer anderen Sprache implementiert ist (Like C #) .

Bitte schlage nicht vor, das gesamte Projekt von C ++ zu wechseln! Und beachten Sie, dass das Programm nicht viel Interaktion zwischen dem C ++ - Code und der GUI erfordert.

    
Johannes Gerer 03.06.2011, 22:36
quelle

8 Antworten

6

Die Aussagen zu ISO C ++ in den Kommentaren dieser Antwort sind schlecht bearbeitet. Keine der hier vorgestellten Lösungen würde dem Rechencode eine Anforderung auferlegen, zu einem anderen Dialekt von C ++ zu wechseln. Der GUI-Code selbst könnte eine andere Geschichte sein.

Die Antworten zur Verwendung von Windows Forms mit verwaltetem C ++ sind wahrscheinlich die praktischsten. Ein großer Teil des UI-bezogenen Codes wäre in einem Dialekt (Erweiterung) von C ++, wo die .NET-Garbage-Collected-Zeiger neben den traditionellen ISO C ++ - Zeigern leben würden. Ich habe diese Methode nicht verwendet, aber von dem, was ich gelesen habe, könnte es besser sein als das, was ich benutzt habe.

MFC ist möglicherweise praktischer, wenn Sie nicht in .NET-Kenntnisse für diese Aufgabe investieren möchten. Es verwendet C ++ - Standardkonstrukte, um die Windows-API zu umbrechen. Die Windows-API verwendet eine bestimmte Aufrufkonvention, die C ++ normalerweise nicht verwendet, und es benötigt eine Erweiterung zu C ++, um damit zu arbeiten, aber das unterscheidet sich nicht von einem C ++ - Programm, das einige Funktionen extern C aufruft. Visual Studio verfügt über ein GUI-Layout-Tool, das sehr gut beim Layout von Dialogen ist und die Dialog-Widgets mit Variablen verbindet, die den Status der Widgets widerspiegeln. Ich habe das benutzt. Wenn Sie Ihre GUI auf ein Dialogfeld herunterkochen können, wäre dies eine gute Option, sonst würden Sie eines der von LFC verwalteten Fenster verwenden.

Offensichtlich behandeln die oben genannten Optionen keine anderen Plattformen, die Sie vielleicht in Betracht ziehen.

Es gibt auch verschiedene Toolkits, die auf anderen Plattformen entwickelt wurden und anständig auf Windows portiert wurden. GTK, QT, FLTK und WxWindows kommen in den Sinn. Ich habe keines der Dialog-Layout / Anwendungs-Designer-Tools verwendet, die mit diesen arbeiten, und ich habe QT überhaupt nicht verwendet. Als ich QT zuletzt überprüft habe, hatte es einen speziellen Preprocessing-Pass für den GUI-Code. Abgesehen davon sind diese tragbaren Werkzeugsätze, soweit ich weiß, reine ISO C ++.

Als eine wirklich-out-there Option könnte man mit "libx" zum X Window System Protokoll programmieren. Soweit ich weiß, würde dies keinen Nicht-ISO-C ++ - Code beinhalten.

    
cardiff space man 06.06.2011, 17:02
quelle
6

Qt ist eine gute Wahl. Es ist stabil, hat eine wunderbare C ++ - Schnittstelle (im Gegensatz zu MFC) und hat ein praktisches Designer-Tool.
Der Aufwand, von Grund auf neu zu lernen, könnte jedoch mehr sein als das, was Sie bereit sind zu investieren. Es hat eine gewisse Lernkurve.

    
shoosh 03.06.2011 22:56
quelle
4

wxWidgets wäre eine gute Wahl für eine plattformübergreifende GUI für C ++

    
Sandeep 03.06.2011 22:52
quelle
3

So sehr ich C ++ liebe, es ist schwierig, eine GUI mit zu erstellen. Ich würde eine schnelle C # WinForms-Anwendung erstellen, mit der Sie Dinge wie visuelle Designer von Visual Studio (Drag-and-Drop-Schaltflächen usw.) verwenden und Ihre C ++ - Anwendung mit P / Invoke aufrufen können.

C ++ wird oft glattere und schönere GUIs erzeugen, aber es braucht ein bisschen mehr Arbeit aus der Box.

    
Billy ONeal 03.06.2011 22:47
quelle
1

Wenn es nur eine einfache GUI ist, die hauptsächlich aus Standardsteuerelementen besteht, würde ich es mit MFC machen. Es kann veraltet sein und war nie wirklich gut, aber es ist immer noch nützlich, um eine native Windows-GUI schnell zu starten.

    
x4u 03.06.2011 22:42
quelle
1

Ich muss über alle Wege lachen, um diese Katze zu häuten. Das leben ist gut. Meine Antwort ist ein Produkt, das ich verwalte. XVT kann es für Sie tun. Der einfachste Weg ist, lassen Sie es uns für Sie tun oder geben Sie eine Vorlage, um dorthin zu gelangen. Es ist nur eine Frage von, ob Sie mehr Geld als Zeit haben. Dann würde ich uns ansehen. Es wäre die schnellste und am wenigsten Aufwand von Ihrer Seite.

    
Peter Hayman 07.06.2011 14:02
quelle
0

MFC Dialog basierte Anwendung könnte die Bedürfnisse beantworten.

    
Farshid Zaker 03.06.2011 22:45
quelle
0

Je nachdem, was Sie brauchen, gibt es einen netten Imgui von Mikko, den Sie einfach anschließen und ziemlich schnell benutzen können. Es ist in opengl getan, aber es wird nicht Ihre Standard-Windows-GUI sein, aber es ist wirklich klein und wirklich einfach zu arbeiten. Sie können die Version von r'lyeh von hier herunterladen: Ссылка .

Das ist die einfachste und bequemste Methode, die ich kenne, aber sie hängt von SDL ab.

    
Simon 03.06.2011 22:58
quelle