Förslag på ett GUI bibliotek för C++ ?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jun 2008

Förslag på ett GUI bibliotek för C++ ?

Hej!

Javaprogrammerare här, men ska börja med C++ av vissa orsaker - Prestanda och beräkningar.
Jag tänker alltså bygga ett realtidsystem, och därför passar Java inte riktigt bra här.

Problemet med C++ är att det är svårt, bökigt och dom bästa biblioteket kräver licens t.ex. QT om man ska använda det i affärsverksamhet. Men jag vet att det finns kostnadsfria bibliotek. Men Python är för segt, Java har inte stöd för de beräkningar som jag ska göra. Så då är det bara C++ kvar. Jag har kollat på Rust, men det verkar ännu bökigare än C++.

Jag undrar om ni vet av ett C++ bibliotek som kan göra plottar t.ex. linjeplott. Biblioteket måste vara gratis.

Bästa för mig vore om GNU Octave hade stöd för trådar + bra GUI.

| CPU: MMX 200 MHz Intel Pentium I| GPU: Voodo2 3dfx 8 Mb| RAM: SDRAM 32 Mb 133 Mhz | PSU: 3V fläkt 2W | Chassi: HP Vectra VE 5| Skärm: HP Ergo 1024| HDD: Toshiba 2033 MB | OS: Windows 95 B | Mus: HP |

Trädvy Permalänk
Medlem
Plats
Småland, långt ute i mörka skogen.
Registrerad
Maj 2018

Kanske WxWidgets? Heltäckande GUI och bra stöd för grafik/diagram.

Jag har använt det i Python, men inte i C++. Väldigt snabbt och effektivt i Python då det i princip bara är ett tunt skal över underliggande C/C++ kod i libbarna. Kan vara idé att göra en prototyp i Python och sedan göra om i C++. Om det behövs. Ganska enkelt då det är WxWidgets både i C++ och Python.

Finns massor med publicerad kod att titta på.

Gör en bildsökning på exempelvis "WxWidgets C++ plotting" för en idé om vad det handlar om.

Linux och Android

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jan 2014

Är det inte smidigare att bara göra beräkningarna i c/c++ och sedan plotta i t.ex python?

Trädvy Permalänk
Medlem
Plats
NördCentrum
Registrerad
Jun 2011

Jag vet inte exakt hur ditt problem ser ut och om du redan har någon kod etc, men vad @Zedong föreslår, att du gör de dyrare beräkningarna i C/C++ och har GUIt i python, kan definitivt vara en möjlighet. Isåfall blir det största problemet hur du interfacear med C från python. Det finns olika metoder här, men den överlag bästa lösningen tror jag är att anropa C funktionerna "direkt" via FFI (foreign function interface). Du borde kolla in CFFI modulen isåfall. https://cffi.readthedocs.io/en/latest/

A: Win10 - i5 2500 - RX 580 - 12G ram
B: Arch - 2 x Xeon X5770 - R9 280X - 32G ram

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2007

QT är LGPL. Så länge du kan uppfylla det så är det väl bara att tuta och köra?

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB

Trädvy Permalänk
Entusiast
Plats
Göteborg
Registrerad
Nov 2002

Qt kräver inte alls licens för affärsverksamhet Har för mig att tumregeln är att "bara" se till att inte baka in alla dll filer i exe-filen typ och såvida du inte gör ändringar på själva Qt ramverket så kan du behålla all kod för dig själv

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2010

Jag skulle också kolla upp FLTK. Det är mindre resurskrävande än de andra nämnda och är licensierat under LGPL så du kan använda det i en kommersiell applikation.

Trädvy Permalänk
Medlem
Plats
/dev/null
Registrerad
Aug 2008
Skrivet av heretic16:

Java har inte stöd för de beräkningar som jag ska göra.

Blev lite nyfiken när jag läste detta...vad är det för beräkningar det handlar om?

NUC: Intel i5-4250U | 8GB RAM | 250GB SSD
Laptop: Dell Latitude E7270
Laptop: MacBook Air 13"

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jun 2008
Skrivet av PeCe:

Blev lite nyfiken när jag läste detta...vad är det för beräkningar det handlar om?

Kvadratisk programmering och reglerteknik så som DARE och CARE för att estimera steady-state kalmanfilter.

| CPU: MMX 200 MHz Intel Pentium I| GPU: Voodo2 3dfx 8 Mb| RAM: SDRAM 32 Mb 133 Mhz | PSU: 3V fläkt 2W | Chassi: HP Vectra VE 5| Skärm: HP Ergo 1024| HDD: Toshiba 2033 MB | OS: Windows 95 B | Mus: HP |

Trädvy Permalänk
Medlem
Registrerad
Nov 2018

Varför inte göra beräkningarna i C++ och spara plottdatan och låta själva genererandet av grafer ske i något annat program? Då skulle du kunna använda vad du vill.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jun 2008
Skrivet av Ståupptuppen:

Varför inte göra beräkningarna i C++ och spara plottdatan och låta själva genererandet av grafer ske i något annat program? Då skulle du kunna använda vad du vill.

Skickades från m.sweclockers.com

Jag skulle kunna göra beräkningarna i C++ och ha Java som GUI. Men C++ kan ej hantera "skräpvärden" lika bra som GNU Octave/MATLAB.

Skräpvärden vill man ha så låga som möjligt. Helst e-17 eller mer. Men C++ brukar oftast ge e-8 på skräpvärden, vilket oftast inte duger till.

Hur är det med Python och NumPy med Java? Går det?

| CPU: MMX 200 MHz Intel Pentium I| GPU: Voodo2 3dfx 8 Mb| RAM: SDRAM 32 Mb 133 Mhz | PSU: 3V fläkt 2W | Chassi: HP Vectra VE 5| Skärm: HP Ergo 1024| HDD: Toshiba 2033 MB | OS: Windows 95 B | Mus: HP |