Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster)



  • In Mathe-Statistik, Physik und sowas bin ich fitt, bringe mir gerade C++ bei, da ich immer nur mit Excel-Spreadsheets und früher mal Labview und bisschen Simulink gearbeitet habe (also nie Core-Programming).

    Nun zu meiner eigentlichen Frage. Es gibt ja viele Gui-Konzepte. Hat vielleicht jemand Erfahrung, welche Gui sich für C++ anbieten würde, wenn ich sowas ähnlich wie auf dem Bild oben dargestellt – später so in der Art anzeigen lassen möchte (Also einige 2-D-Diagramme), Fenster für Parametereingabe und sowas.

    Würde mich über Anregungen, insbesondere von Programmieren, die Erfahrung mit Diagramm-Erstellung haben, freuen. Ich bin da derzeit irgendwie etwas überflutet: wxWidgets, ImGui, QT (wobei ich nix kommerzielles nehmen möchte). Habe keine Angst vor Einarbeitung, aber möcht halt erstmal möglichst nur eine GUI lernen müssen.

    Sehe gerade, Beispielbild kann ich nicht anhängen, daher: Die Diagramme sehen etwa aus, wie einfache Excel-2D-Diagramme.
    Input:

    1. Uhrzeit
      2. Preis (Kurs)
      3. Volumen ask /Volumen bid
      Diese werden dann als Diagramme ausgebeben (Volume-Preis/Zeit-Preis/...)

    Gruß Ingolf



  • @Ingolf_008
    wxWidgets braucht, meiner Erfahrung nach, einiges an Einarbeitung und kann von sich aus keine Grafiken plotten. Dafür braucht man eine dritt Library. Damit geht das aber gut, habe ich auch schon in unterschiedlichen Ausprägungen gemacht. Wobei wir den eigentlichen Plot von einer kommerziellen Lib erzeugen lassen.

    Mit Qt habe ich schon länger nicht mehr gearbeitet, braucht aber sicher auch seine Einarbeitung. Wobei, das Erstellen einer einfachen GUI mit dem Designer wahrscheinlich einfacher ist als sich das aus Code selbst zu basteln.
    Mit Qt Charts müsstest du auch alles an der Hand haben, was zu benötigst.
    Lizenz ist entwerder kommerziell oder under GPLv3, je nachdem was für dich besser passt.

    Es gibt auch Designer für wxWidgets, die habe ich aber noch nicht probiert.

    Wenn es dir vor allem ums Plotten und eine einfache GUI geht und nicht C++ im Fokus steht, würde ich eventuell zu einer anderen Programmiersprache raten (z.B. Python)



  • @Schlangenmensch sagte in Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster):

    @Ingolf_008
    Mit Qt Charts müsstest du auch alles an der Hand haben, was zu benötigst.
    Lizenz ist entwerder kommerziell oder under GPLv3, je nachdem was für dich besser passt.

    Genau genommen ist es GNU LGPL version 3 🙂 https://doc.qt.io/qt-6/licensing.html
    Und damit prinzipiell kostenlos nutzbar, besonders für reine hobby projekte.



  • @Schlangenmensch sagte in Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster):

    Lizenz ist entwerder kommerziell oder under GPLv3, je nachdem was für dich besser passt.

    Wichtige Korrektur: Die meisten Module (insbesondere alle Core Module) haben eine LGPLv3. Diese erlaubt eine kommerzielle Nutzung von QT in closed source Projekten. Die einzige Anforderung ist dann, dass Qt dynamisch gelinkt wird.
    Einige Ausnahmen gibt es davon. Meines Wissens nach ist z.B. QtCharts GPL3.



  • @Leon0402 @firefly Huch, ich hatte jetzt nur auf der Seite zu QtCharts geguckt und da steht kommerziell oder GPLv3



  • @Schlangenmensch sagte in Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster):

    @Leon0402 @firefly Huch, ich hatte jetzt nur auf der Seite zu QtCharts geguckt und da steht kommerziell oder GPLv3

    Ja, das ist genau einer der Ausnahmen 🙂

    Edit: Siehe https://doc.qt.io/qt-6/qtmodules.html#gpl-licensed-addons



  • @Schlangenmensch sagte in Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster):

    s gibt auch Designer für wxWidgets, die habe ich aber noch nicht probiert.

    Darf ich fragen, mit welcher kostenpflichtigen Plot-Ap Du die Diagramme ausgeben lässt. Wenns nicht zu teuer ist und sinnig erscheint, vielleicht auch eine Option. Das QT-Lizensierungsmodell kapiere ich nicht, habs mir aber ehrlicherweise auch nicht in der Tiefe angeschaut. Hoffe, hier dreht sich jetzt nicht alles um QT, weil genau das wollte ich eigentlich vemeiden.



  • @Ingolf_008 Wir nutzen ChartDirector (https://www.advsofteng.com/) in Kombination mit wxChartDir

    Ansonsten zum Thema plotten mit wxWidgets: https://www.wxwidgets.org/blog/2018/08/wxchartdir-using-chartdirector-in-wxwidgets-applications/

    Gibt da auch kostenfreie Möglichkeiten.



  • Meine erste Empfehlung wäre, wenn es einfach nur "über Excel hinaus" gehen soll, aber es nicht unbedingt C++ sein muss: Python (oder R) (blasphemy, I know).
    Nicht nur zum Plotten, sondern auch das ganze Data Science / Mathe / Statistik / etc. Zeugs, da gibt's sehr etablierte Bibliotheken in Python (und R ist praktisch dafür gemacht).

    Ansonsten bei C++ kann ich auch für Qt und QChart / QCustomPlot sprechen. Man muss halt mit der Lizenz klarkommen und dem MaintenanceTool / Installer. Es muss nicht bezahlt werden, es gibt eine Open-Source Lizenz für Qt. Für den eigenen Gebrauch ist das kein Problem (d. h. man vertreibt seine SW mit Qt nicht weiter an andere 'User'). Falls man mal doch seine SW vertreiben möchte, müsste man sich halt das ganze Lizenz-Gedöns nochmal genauer ansehen.

    Ich hatte mir mal GNUPlot angeschaut, aber das war mir damals glaub zu hoch. wxWidgets oder imGUI habe ich nicht ausprobiert.

    Es gibt wohl auch ein "matplotlib for C++", hab ich aber nicht probiert (das wäre praktisch die Variante "Python" aber in C++ verwendet). Könnte einen Versuch wert sein.



  • @Ingolf_008 sagte in Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster):

    In Mathe-Statistik, Physik und sowas bin ich fitt, bringe mir gerade C++ bei, da ich immer nur mit Excel-Spreadsheets und früher mal Labview und bisschen Simulink gearbeitet habe (also nie Core-Programming).
    Nun zu meiner eigentlichen Frage. Es gibt ja viele Gui-Konzepte. Hat vielleicht jemand Erfahrung, welche Gui sich für C++ anbieten würde, wenn ich sowas ähnlich wie auf dem Bild oben dargestellt – später so in der Art anzeigen lassen möchte (Also einige 2-D-Diagramme), Fenster für Parametereingabe und sowas.

    Ich mache mich jetzt sicher nicht beliebt. 😇
    Aber ein deiner Stelle könnte ich dir Lazarus empfehlen, es ist nicht C/C++ sondern Pascal.
    So wie ich gelesen habe, bist du bei C erst im Einstieg.
    Dafür hast du dort alles was du brachst von Tabelle und Plottfenster. Der Einstieg ist sehr einfach und nebenbei voll Plattformübergreifend und sehr schnell, da kann kein C-Compiler mithalten.

    Gib mal folgendes bei Google ein: "lazarus tchart"

    Ach ja, so nebenbei kannst du das Problem mit Lizensen vergessen, es ist alles frei.
    Lazarus ist ähnlich wie Delphi. Oder wen du C-Builder kennst, das ist ähnlich wie Lazarus, einfach in C/C++.



  • @HarteWare sagte in Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster):

    Meine erste Empfehlung wäre, wenn es einfach nur "über Excel hinaus" gehen soll, aber es nicht unbedingt C++ sein muss: Python (oder R) (blasphemy, I know).

    Ich finde Python da sehr stark, da es sehr viele Module für Python gibt und fast alle mittels dem Tool pip installiert werden können.

    Ich nutze für meine KI Spielereien folgende Module:

    • Matplotlib
    • SciPy
    • NumPy
    • Pandas
    • scikit-learn
    • Pillow
    • Tensorflow


  • Sehe jetzt das Lizensierungsmodell von QT nicht als Problem. Wenn du die Anwendung für den Privatgebrauch schreibst, ist doch die Lizenz egal.
    Klar gibts jetzt nicht unbedingt Widgets bei QT, die dir die Arbeit komplett abnehmen, aber einen Chart zu zeichnen, der den obigen Anforderungen genügt, ist jetzt kein Hexenwerk, da du ja mathematisch scheinbar fit bist. Dümmer wird man durchs "selbermachen" auch nicht.

    Wenn du aber wirklich nur statische Daten hast und jetzt nicht mit fancy-live-data arbeiten musst, würde ich auch R wählen und mich der Ansicht von @Mathuas anschließen. Ich habe da auch eine Zeit lang mit gearbeitet.
    Man muss sich an das Denken in Matrizen gewöhnen und das Kreuzprodukt sollte einem nicht fremd sein, aber wenn man den Einstieg überwunden hat, ist es ein echt tolles Hilfsmittel, auch in grafischer Hinsicht.



  • Hallo,

    Für Qt gibt es mit qwt eine recht gute und umfangreiche lib für Plots.
    https://sourceforge.net/projects/qwt/



  • @It0101 sagte in Welche GUI in C++ zur Verwendung von mehreren 2-D Fenstern (Diagrammfenster):

    Man muss sich an das Denken in Matrizen gewöhnen und das Kreuzprodukt sollte einem nicht fremd sein, aber wenn man den Einstieg überwunden hat, ist es ein echt tolles Hilfsmittel, auch in grafischer Hinsicht.

    Bei OpenGL, kommt man mit diesem auch in Kontakt.
    m = m1 * m2
    ist nicht das Gleiche wie
    m = m2 * m1


Anmelden zum Antworten