Hallo!
Ich möchte mit einem PC mit ca. 50MB/s Messdaten von erfassen. Ich habe
bisher immer nur Konsolenanwendungen mit C programmiert und soll jetzt
auch GUIs entwickeln. Hier gibt es zahlreiche Frameworks, aber so recht
weiß ich auch nicht. Wichtig wäre mir eine schnelle Einarbeitung, also
ein nicht so kompliziertes Framework. Plattform wäre Windows,
Portabilität ist also nicht wichtig.
.net/WPF/Winforms ist ja eher was für VB oder C#, die Libs der Hardware
sind aber oft in C oder C++, daher vielleicht nicht so geeignet?
Qt kommt Lizenztechnisch eher nicht so in Frage, da ich auch plotten
möchte!
wxwidgets sieht so erstmal gut aus, ist das eher ein Ausläufer oder gibt
es noch aktive Projekte? Kennt jemand gute Plot-Libs dafür?
GTK fällt mir dann noch ein. Fragen wären ähnlich zu wxwidgets.
Danke im Vorraus!
Thomi schrieb:> Qt kommt Lizenztechnisch eher nicht so in Frage, da ich auch plotten> möchte!
Wieso, auf die schnelle hab ich jetzt keine Einschränkung gesehen, außer
den gewöhnlichen?
Willst du eine kommerzielle, Open Source, oder nur für dich selbst
genutzte Software entwickeln?
LinksRevolutzer schrieb:> Thomi schrieb:>> Qt kommt Lizenztechnisch eher nicht so in Frage, da ich auch plotten>> möchte!>> Wieso, auf die schnelle hab ich jetzt keine Einschränkung gesehen, außer> den gewöhnlichen?
Korrektur jetzt hab ich es auch gesehen, QT Charts und Data
Visualization sind GPL use only, mein faux pax ;)
Wenn du allerdings Python kannst wäre eventuell matplotlib* etwas für
dich, kann man auch an QT verheiraten.
Vorteil von Python ist das man damit auch C und C++ (und auch Fortran,
daher beliebt bei einigen Maschinenbaufakultäten) ansprechen kann, kann
also als glue language eingesetzt werden, ergo den kritischen Teil
machst du in C++, den GUI Kram in Python (also zB PyQt).
*Eigene Lizenz, siehe hier: https://matplotlib.org/users/license.html
Thomi schrieb:> Hallo!>> Ich möchte mit einem PC mit ca. 50MB/s Messdaten von erfassen. Ich habe> bisher immer nur Konsolenanwendungen mit C programmiert und soll jetzt> auch GUIs entwickeln. Hier gibt es zahlreiche Frameworks, aber so recht> weiß ich auch nicht. Wichtig wäre mir eine schnelle Einarbeitung, also> ein nicht so kompliziertes Framework. Plattform wäre Windows,> Portabilität ist also nicht wichtig.>> .net/WPF/Winforms ist ja eher was für VB oder C#, die Libs der Hardware> sind aber oft in C oder C++, daher vielleicht nicht so geeignet?
UWP mit C++ wäre noch eine Option, wenn ab W8/W10 reicht.
U.U. kann die Einbindung von "alten" DLLs etwas tricky sein. Siehe
https://github.com/MicrosoftDocs/cpp-docs/blob/master/docs/porting/how-to-use-existing-cpp-code-in-a-universal-windows-platform-app.md
Ansonsten kommt es auf die Libs, die verwendet werden sollen, an, wie
gut diese in VB/C# eingebunden werden können. Mit P/Invoke geht
eigentlich alles und wenn man mag geht auch Qt mit C# (siehe QtSharp und
CppSharp)
> Qt kommt Lizenztechnisch eher nicht so in Frage, da ich auch plotten> möchte!
Wenn's nur Inhouse ist und nicht verkauft werden soll, ist die Lizenz
kein Problem oder geht's da um Controls/Libs, die zugekauft werden
müssten? Alles Open Source unter passender Lizenz -> auch kein Problem,
nur gemischt kann's schwierig werden.
> wxwidgets sieht so erstmal gut aus, ist das eher ein Ausläufer oder gibt> es noch aktive Projekte? Kennt jemand gute Plot-Libs dafür?
Wenn die Plot-Libs mit der obigen Datenrate mithalten sollen, sind mir
nur kommerzielle (bspw. für WPF/WinForms LightningChart oder SciChart)
oder selbst entwickelte Controls bekannt. Stichworte: Shader + je nach
Geschmack OpenGL oder Direct3D.
Wenn HTML/CSS eine Option ist: Sciter. Kostenlos, wenn man keine
Quelltexte braucht, native C++ und Bindings für u.a. C#, Go und Rust
Ich kenne Python von Chipwhisperer... da wird ja teilw. auch auf C/C++
zurückgegriffen. Insgesamt ist das nicht sehr schnell und man muss doch
eine Menge auf dem Zielsystem installieren.
Kann denn jemand etwas zur wxwidgets oder GTK sagen?
Python für die GUI ist völlig ausreichend, was die Geschwindigkeit
angeht. Man kann auch in C und C++ sehr langsamen Code schreiben. Und
mit Python kann man auch ziemlich schnellen Code schreiben, wenn man
weiß was man macht. Und auf dem Zielsystem muss gar nichts weiter
installiert werden. Man kann das ganze nämlich als exe verpacken. Such
mal nach PyInstaller, Py2exe, cx_freeze.
Wenn dir Python zu langsam ist, dann nimm einfach Qt mit C++.
LinksRevolutzer schrieb:> LinksRevolutzer schrieb:>> Thomi schrieb:>>> Qt kommt Lizenztechnisch eher nicht so in Frage, da ich auch plotten>>> möchte!>>>> Wieso, auf die schnelle hab ich jetzt keine Einschränkung gesehen, außer>> den gewöhnlichen?>> Korrektur jetzt hab ich es auch gesehen, QT Charts und Data> Visualization sind GPL use only, mein faux pax ;)
Es gibt ja immer noch Qwt. Das steht unter LGPL mit ein paar Ausnahmen,
die aber zugunsten des Nutzers sind, und bietet einiges an Möglichkeiten
fürs Plotten.
Hab ein bisschen bzgl. Python, insb. PyQT recherchiert und bin doch
etwas mehr davon überzeugt.
Wie ist es mit dem Einbinden von C++ DLLs wenn die Klassen der DLL auch
Structs oder Pointer als Übergabeparameter haben? Wie stehts mit der
Performance von C/C++ unter Python?
Thomi schrieb:> Hab ein bisschen bzgl. Python, insb. PyQT recherchiert und bin doch> etwas mehr davon überzeugt.
PyQT steht aber auch unter GPL.
Qwt ist aber eigentlich etabliert wenn es um (wissenschaftliche)
Visualisierung mit Qt geht.