Följ Black Week på SweClockers

Vad är mest populärt: QT eller Visual Studio?

Permalänk
Hedersmedlem
Skrivet av heretic16:

Visst skulle Qt fungera, men då får jag ta och lära mig QML. C++ i Qt tyckte jag inte var så bra. Visst var "signals & slots" bekvämt, men det blev väldigt grötigt. Dessutom var C++ i Qt horribelt dåligt på dynamiska grafer.

Jag tycker också att du ska titta på QML, men vi borde kanske reda ut de där traumatiska upplevelserna du har med Widgets någon gång. Jag tror att det till stora delar handlar om missförstånd.

Exakt vad är det som blir grötigt? Man kan säkert skriva grötiga saker om man vill, men att koppla ihop en händelse (signal) med en hanterare (slot) kräver typiskt en rad där majoriteten av texten är namnen på sakerna som ska kopplas ihop. Jag vet inte om det går att få så mycket bättre (och fortfarande vara c++).

Vad är det för problem du har med grafer? Det är kanske lösbart? Vi berörde det här, men jag vet inte hur det gick sedan:
#19342432

Permalänk
Skrivet av Elgot:

Jag tycker också att du ska titta på QML, men vi borde kanske reda ut de där traumatiska upplevelserna du har med Widgets någon gång. Jag tror att det till stora delar handlar om missförstånd.

Exakt vad är det som blir grötigt? Man kan säkert skriva grötiga saker om man vill, men att koppla ihop en händelse (signal) med en hanterare (slot) kräver typiskt en rad där majoriteten av texten är namnen på sakerna som ska kopplas ihop. Jag vet inte om det går att få så mycket bättre (och fortfarande vara c++).

Vad är det för problem du har med grafer? Det är kanske lösbart? Vi berörde det här, men jag vet inte hur det gick sedan:
#19342432

Det problem jag stötte på med Qt C++ var följande.

* Mycket kod för lite grafik. Exempelvis så använder Qt många defines och liknande. Mycket mystiska funktioner som måste vara där i klassens header. Man skulle kunna städa ganska mycket i Qt.
* Dynamiska grafer är bara att glömma
* Stöd för databaser, exempelvis MySQL är en plåga. Man måste ladda ned någon förkompilerad tredje parts fil.
* Qt var rätt segt för att vara C++. Kändes inte direkt jätte snabbt. Troligtvis har detta med signals & slots.
* Allt var en klass. Det gick inte att anropa C kod från externt tredje parts bibliotek. Du börjar i en klass och slutar i en klass. Lite som Java-tänk att allt ska vara en klass.

Det kanske därför många har gått över till QML. Normalt ska väll inte grafiska applikationer göras i C++, om det inte finns speciella hårdvarukrav.

Permalänk
Hedersmedlem
Skrivet av heretic16:

* Mycket kod för lite grafik. Exempelvis så använder Qt många defines och liknande. Mycket mystiska funktioner som måste vara där i klassens header. Man skulle kunna städa ganska mycket i Qt.

Qt (liksom de flesta större c++-biblioteken) har en hel del makron och liknande för att fungera. Det är dock inget som man normalt behöver bry sig särkilt mycket om för att använda dem. Qt har dock ett speciellt makro, Q_OBJECT, som används för att markera klasser som skall pre-processas. Mer än så är det typiskt inte, och även om det kan upplevas magiskt är det inte särskilt betungande.

Skrivet av heretic16:

* Dynamiska grafer är bara att glömma

Här får du som sagt gärna precisera vad du menar. Jag tror det går att lösa.

Skrivet av heretic16:

* Stöd för databaser, exempelvis MySQL är en plåga. Man måste ladda ned någon förkompilerad tredje parts fil.

Qt har som standard stöd för ett antal databaser, men stödet för just MySql måste man mycket riktigt aktivera manuellt. Du kan ju dock använda valfria c/c++-bibliotek för istället tillsammans med Qt. Finns det så många andra grafiska ramverk som har inbyggt stöd för MySql som standard?

Skrivet av heretic16:

* Qt var rätt segt för att vara C++. Kändes inte direkt jätte snabbt. Troligtvis har detta med signals & slots.

Detta bör ju också mätas för att säga något. Vad är det som är segt? Jämfört med vad?

Skrivet av heretic16:

* Allt var en klass. Det gick inte att anropa C kod från externt tredje parts bibliotek. Du börjar i en klass och slutar i en klass. Lite som Java-tänk att allt ska vara en klass.

Många saker är klasser, men så är det ju i c++. "cout" är också ett objekt, men det går bra att blanda med fria funktioner (eller c-kod) också. Qt begränsar inte här på något sätt. Alla bibliotek som fungerar i c++ bör fungera.
Detta är till exempel som sagt ett enkelt program:

#include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton button("Test"); button.show(); return app.exec(); }

Man använder två klasser, men programmet i sig är inte en klass.

Permalänk
Skrivet av Elgot:

Qt (liksom de flesta större c++-biblioteken) har en hel del makron och liknande för att fungera. Det är dock inget som man normalt behöver bry sig särkilt mycket om för att använda dem. Qt har dock ett speciellt makro, Q_OBJECT, som används för att markera klasser som skall pre-processas. Mer än så är det typiskt inte, och även om det kan upplevas magiskt är det inte särskilt betungande.

Jag vill ge dig en uppdatering. Nu har jag kört följande:

  • Qt

  • ImGui

  • wxWidgets

Tre populära bibliotek för C++ som har sina olika syften och mål. Qt som du nämner, är ett stort monster som är inte bara för att få fram lite fönster och knappar, utan även kunna kommunicera med hårdvara, databaser, grafer (på gott och ont) samt massa annat. Qt ger systemets standardiserade fönster API.

Nackdelen med Qt är följande:

  • Du kan inte göra animeringar i Qt (nu talar vi om QtWidgets, inte QtQuick). Den är stendum!

  • Stödet för databaser är bristande. Speciellt för MySQL.

  • Qt program är ganska långsamma. Den tar mycket resurser.

  • Man skriver rätt mycket kod i Qt

  • Qt uppdateras rätt ofta så det gäller att hänga med versionerna för dom skiljer sig

  • För att få använda Qt på en arbetsplats så måste man ha en betald licens

  • signals and slots är en fördel, men den kan bli grisigt mycket "connect" överallt. Spagettikommunikation säger jag bara. Undvik helst om man kan. För USB kommunikation är det dock att föredra

Fördelen med Qt är följande:

  • Inte bara ett bibliotek, utan ett helt ramverk

  • Enkelt att göra grafiska applikationer med deras Designer-verktyg. Jag gillar dom skarpt

  • Stöds av ett stort företag. Detta betyder att Qt kommer finnas långt fram över

ImGui har jag kört också. Den använder sig inte av systemets skandaliserade fönster API, utan hitta på eget. ImGui är jag väldigt imponerad över. Men ImGui är rätt fult och brist på fin design. Då föredrar jag Qt.

Nackdelar med ImGui:

  • Fult - Jag menar riktigt fult

  • Minnesförbrukningen är lömsk beroende på hur många fönster man har uppe. Har man lite att rendera, så drar den lite minne

  • Små fönster kan bara finnas inom huvudfönstret

  • Saknar stöd för databaser, serial och massa annat som Qt har stöd för

  • Dålig dokumentation

Fördelar med ImGui:

  • Passar allt från mobil till skrivbord. Allt beror på vad man väljer. ImGui är dock anpassad för 3D grafik och inte vanliga skrivbordsapplikationer. Trots att ImGui fungerar för båda

  • Man skriver knappt någon kod för att få något gjort

  • Har mycket fina verktyg så som plottar och grafer samt massa annat häftigt

  • Iterationsbaserad istället för händelsebaserad som Qt och wxWidgets är.

  • Krävs inga licenser för att få brukas på en arbetsplats

Men det finns en tredje applikation som jag faktiskt gillar mest av dom båda. Hör och häpna: wxWidgets.
wxWidgets, funnits sedan 1992, så använder den systemets fönster API.

Några nackdelar med wxWidgets

  • Endast för skrivbordsapplikationer, dvs klassisk fönsterhantering

  • Är ett litet bibliotek. Minsta av dom alla tre biblioteken. Saknar exempelvis serial, grafer och plottar som Qt stödjer. Man får vända sig till bibliotek av tredjepart t.ex. wxMathPlot eller annat skoj

Fördelarna är följande:

  • Minneshanteringen är liten. Biblioteket använder sig av systemets standarliserade fönster API

  • Extremt ren kod. Man skriver väldigt lite kod för att få något gjort här. Mindre än ImGui

  • Dokumentationen är lika bra som Qt, dvs fantastiskt

  • Krävs inga licenser för att få brukas på en arbetsplats

Citat:

Här får du som sagt gärna precisera vad du menar. Jag tror det går att lösa.

Ja, det "går" att lösa med ett hack i Qt. Men det är inte en standarliserad lösning. Dessutom så är den inte lika snabb som ImGui.

Citat:

Qt har som standard stöd för ett antal databaser, men stödet för just MySql måste man mycket riktigt aktivera manuellt. Du kan ju dock använda valfria c/c++-bibliotek för istället tillsammans med Qt. Finns det så många andra grafiska ramverk som har inbyggt stöd för MySql som standard?

Qt har OK stöd för databaser, men den är ändå bristfällig. Hellre att man kör MySQLs egna C++ databasanslutare än använda Qts.
Den är liksom helt enkelt bättre.

Citat:

Detta bör ju också mätas för att säga något. Vad är det som är segt? Jämfört med vad?

För att Qt har mycket mystiskt som ska laddas vid start också.

Citat:

Många saker är klasser, men så är det ju i c++. "cout" är också ett objekt, men det går bra att blanda med fria funktioner (eller c-kod) också. Qt begränsar inte här på något sätt. Alla bibliotek som fungerar i c++ bör fungera.
Detta är till exempel som sagt ett enkelt program:

#include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton button("Test"); button.show(); return app.exec(); }

Man använder två klasser, men programmet i sig är inte en klass.

Notera att jag använde Qt Designer när jag skapade mitt. Då blev allt bara klasser. Visst, klasser är OK, så länge det är minimalt med kod i klassen. För Qt så var det mycket QT_DEFINE, QT_APP, QT_WIDGET, QT_INVOICE osv överallt. Alltså makron.

I wxWidgets så är det inte så. Så mitt svar i denna tråd på frågan är:
Det blev Visual Studio (ej Code) med wxWidgets.

Jag vet, jag är tråkig.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Du kan inte göra animeringar i Qt (nu talar vi om QtWidgets, inte QtQuick). Den är stendum!

Har du sett Qt Animation Framework? Nu vet jag inte vad det är du vill göra, men man kan göra animeringar.

Skrivet av heretic16:

Stödet för databaser är bristande. Speciellt för MySQL.

Exakt vad är det som inte går? Och jag förstår fortfarande inte varför du tycker att inget stöd alls är bättre än brisfälligt stöd (om det nu är så).

Skrivet av heretic16:

Qt program är ganska långsamma. Den tar mycket resurser.

Jag vet inte om jag kan säga emot, men inte heller hålla med. Hur mäter du?

Skrivet av heretic16:

Man skriver rätt mycket kod i Qt

Kan du ge exempel?

Skrivet av heretic16:

Qt uppdateras rätt ofta så det gäller att hänga med versionerna för dom skiljer sig

Det händer att saker ändras, men det är inte särkilt ofta något gammalt slutar fungera. Det finns också LTS-versioner med längre hållbarhet.

Skrivet av heretic16:

För att få använda Qt på en arbetsplats så måste man ha en betald licens

Både Qt och WxWidgets finns som LGPL, så det bör inte vara någon större skillnad*.
*WxWidgets har dock ett undantag som tillåter att man modifierar själva ramverket utan att tillhandahålla källkoden, och för Qt gäller att inte riktigt alla funktioner är tillgängliga med LGPL-licensen.

Skrivet av heretic16:

signals and slots är en fördel, men den kan bli grisigt mycket "connect" överallt. Spagettikommunikation säger jag bara. Undvik helst om man kan.

Det kan det kanske bli, men jag tror inte att det är ramverkets fel (lika lite som att det är funktioner det är fel på om man skriver traditionell spaghettikod). Rimligen måste man väl koppla ihop tlll exempel en knapp med kod på något sätt?

Skrivet av heretic16:

Ja, det "går" att lösa med ett hack i Qt. Men det är inte en standarliserad lösning. Dessutom så är den inte lika snabb som ImGui.

Vad är det du försöker göra? Vad för hack?

Skrivet av heretic16:

Hellre att man kör MySQLs egna C++ databasanslutare än använda Qts.
Den är liksom helt enkelt bättre.

Gör det då? Ta det som är bäst, men det är väl inte ett argument mot Qt så länge inte konkurrerande ramverk erbjuder mycket bättre databasstöd?

Skrivet av heretic16:

För Qt så var det mycket QT_DEFINE, QT_APP, QT_WIDGET, QT_INVOICE osv överallt. Alltså makron.

Var utsätts du för de där? Q_OBJECT är som sagt något man måste stå ut med, men de andra tror jag inte att man någonsin behöver se (om man inte tittar i genererade (temporära) filer) om man inte vill.

Permalänk
Skrivet av Elgot:

Har du sett Qt Animation Framework? Nu vet jag inte vad det är du vill göra, men man kan göra animeringar.

Det finns en orsak varför QtCharts verkar ha problem med animeringen. Notera att jag pratar om QtWidgets nu. Inte QtQuick.
Det är därför QCustomCharts finns.

Citat:

Exakt vad är det som inte går? Och jag förstår fortfarande inte varför du tycker att inget stöd alls är bättre än brisfälligt stöd (om det nu är så).

Man måste kompilera och använda speciella libs för att Qt ska fungera med MySQL. Detta är ett vanligt problem hos Qt.

[quote]
Jag vet inte om jag kan säga emot, men inte heller hålla med. Hur mäter du?
[quote]
Nu jämfört jag äpplen mot päron. En applikation som jag har gjort i Qt är betydligt mycket långsammare än en applikation gjort i ImGui eller wxWidgets. Det är en skillnad faktiskt och det handlar om responstider. Jag tycker att ImGui är dock snabbast.

Citat:

Kan du ge exempel?

Qt har många onödiga makron och liknande saker som jag undrar "behövs detta verkligen?". Varken wxWidgets eller ImGui har detta. Men notera att jag är en person som försöker göra animeringar med QtWidgets. Dessutom tycker jag att Qt verkar ha lite av "det extra" som måste skrivas.

Citat:

Det händer att saker ändras, men det är inte särkilt ofta något gammalt slutar fungera. Det finns också LTS-versioner med längre hållbarhet.

Jo, men det är ganska stora skillnader tycker jag.

Citat:

Både Qt och WxWidgets finns som LGPL, så det bör inte vara någon större skillnad*.
*WxWidgets har dock ett undantag som tillåter att man modifierar själva ramverket utan att tillhandahålla källkoden, och för Qt gäller att inte riktigt alla funktioner är tillgängliga med LGPL-licensen.

Man måste ändå ha en licens om man ska använda Qt kommersiellt.

Citat:

Det kan det kanske bli, men jag tror inte att det är ramverkets fel (lika lite som att det är funktioner det är fel på om man skriver traditionell spaghettikod). Rimligen måste man väl koppla ihop tlll exempel en knapp med kod på något sätt?

Oftast är det "skit bakom tangentbordet" som är felet. Men jag tyckte signal and slots är bra, men det kan lätt användas fel.
Jag tycker jag ser ingen direkt logik att ha en klass som kan helt plötsligt skicka en signal till en annan klass bara för att man sätter en connect mellan dom.

Citat:

Vad är det du försöker göra? Vad för hack?

Jag läser av USB porten via en tråd, samtidigt som jag uppdaterar en plot i realtid. Det var inte smidigt.

Citat:

Var utsätts du för de där? Q_OBJECT är som sagt något man måste stå ut med, men de andra tror jag inte att man någonsin behöver se (om man inte tittar i genererade (temporära) filer) om man inte vill.

Varför måste man ens ha Q_OBJECT? Borde det inte vara uppenbart att klassen ska använda Qt-klasser.

Hur som helst så tycker jag inte Qt är dåligt. Nej nej. Qt är riktigt bra. Det är ett stort ramverk.
Det jag verkligen gillade med Qt var deras stöd för serial USB. Helt underbart bra!
Men databaser och plot...njaa...där kan dom förbättra.

Permalänk
Medlem

Du pratar om framtid och stora företag och jobbannonser etc. Och sen om desktop-applikationer. Deskotop applikation är INTE framtiden. Vårt företag (100k+ anställda i 200 länder) har inte utvecklat en applikation för desktop de senaste 10 åren. Allt är webbapplikationer. Underhållet av dessa är så ofantligt mycket lättare och aldrig några problem med vilken version vem kör eller hur ska vi ta bort applikationer från folk som inte är behöriga längre etc etc.

deskop är helt enkelt inte framtiden om det är arbete för stora företag du är ute efter

Visa signatur

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Permalänk
Skrivet av talonmas:

Du pratar om framtid och stora företag och jobbannonser etc. Och sen om desktop-applikationer. Deskotop applikation är INTE framtiden. Vårt företag (100k+ anställda i 200 länder) har inte utvecklat en applikation för desktop de senaste 10 åren. Allt är webbapplikationer. Underhållet av dessa är så ofantligt mycket lättare och aldrig några problem med vilken version vem kör eller hur ska vi ta bort applikationer från folk som inte är behöriga längre etc etc.

deskop är helt enkelt inte framtiden om det är arbete för stora företag du är ute efter

Jag vet att framtiden är webbappar, och jag tycker att ALLT borde vara en webbapp idag. JavaScript, HTML, CSS och allt annat som dagens generation eftersträvar. Tänk vad enkelt. Man behöver aldrig ha någon bra dator.
Men jag är hårdvarukille För mig så är det tråkiga ofärgade system som ska programmeras. Stöter mest bara på C och C++. Även nya projekt tas beslut att dom ska skrivas i C++.

Permalänk
Medlem
Skrivet av talonmas:

Du pratar om framtid och stora företag och jobbannonser etc. Och sen om desktop-applikationer. Deskotop applikation är INTE framtiden. Vårt företag (100k+ anställda i 200 länder) har inte utvecklat en applikation för desktop de senaste 10 åren. Allt är webbapplikationer. Underhållet av dessa är så ofantligt mycket lättare och aldrig några problem med vilken version vem kör eller hur ska vi ta bort applikationer från folk som inte är behöriga längre etc etc.

deskop är helt enkelt inte framtiden om det är arbete för stora företag du är ute efter

För administrativa system, visst. Till och med för vissa "inbyggda system" som har tillräcklig strömförsörjning och minne för att köra en webbserver.

Men jobbar man på ett företag som tillverkar andra typer av enheter och som måste underhålla 20+ år gamla produkter med de gränssnitt som valdes då så finns det andra behov.

Jag konsultar på ett företag (ett av Sverige mer kända varumärken) som har gränssnitt över proprietär radio, IR, trådad UART, BLE, ethernet+WiFi (proprietära icke HTTP-protokoll), CAN med mera. Det underhålls tjogtals med desktop-applikationer och det skapas nya, i olika syften, bara i den lilla delen av koncernen. Vissa av dem görs i ett proprietärt C++-ramverk som inte nämnts i den här tråden. Andra i C# eller Python. För vissa syften görs det mobilappar, men det är mest för användare hos slutkund, inte åt dem som faktiskt underhåller kundens lösning, där är det desktop som gäller. I den miljön är det inte helt dumt att kunna sätta inbyggda system, desktop-applikation och webapplikation på CV:t, det gör dig mer användbar, framför allt om du vill ha någon form av arkitekt-roll. En kollega i teamet har för övrigt gerilla-programmerat en testapplikation i ImGui, den renderar 3D-grafik - vilket jag nog inte skulle ge mig på i en webapp,

Permalänk
Datavetare
Skrivet av KAD:

För administrativa system, visst. Till och med för vissa "inbyggda system" som har tillräcklig strömförsörjning och minne för att köra en webbserver.

Men jobbar man på ett företag som tillverkar andra typer av enheter och som måste underhålla 20+ år gamla produkter med de gränssnitt som valdes då så finns det andra behov.

Jag konsultar på ett företag (ett av Sverige mer kända varumärken) som har gränssnitt över proprietär radio, IR, trådad UART, BLE, ethernet+WiFi (proprietära icke HTTP-protokoll), CAN med mera. Det underhålls tjogtals med desktop-applikationer och det skapas nya, i olika syften, bara i den lilla delen av koncernen. Vissa av dem görs i ett proprietärt C++-ramverk som inte nämnts i den här tråden. Andra i C# eller Python. För vissa syften görs det mobilappar, men det är mest för användare hos slutkund, inte åt dem som faktiskt underhåller kundens lösning, där är det desktop som gäller. I den miljön är det inte helt dumt att kunna sätta inbyggda system, desktop-applikation och webapplikation på CV:t, det gör dig mer användbar, framför allt om du vill ha någon form av arkitekt-roll. En kollega i teamet har för övrigt gerilla-programmerat en testapplikation i ImGui, den renderar 3D-grafik - vilket jag nog inte skulle ge mig på i en webapp,

WebGL är ju rätt moget numera. Går att skriva enklare 3D-spel som kan köras direkt i webbläsaren

och går också att skriva vertex-/fragment-shader för lite roliga effekter som t.ex. readtids-rendering av Mandelbrot/Julia

Klicka för mer information
Visa mer

Men det ändrar inte det du skrev om CV:t. Det är helt klart olika kunskaper som krävs för inbyggda-system vs desktop-appar vs web-appar.

Just desktop-applikationer känns ändå som det är rätt mycket på dekis. Ta Microsoft t.ex., vet inte hur många nya ramverk de har presenterat senaste 10-15 åren där flera aldrig nått användbar nivå innan de lägger ned och börjar på nästa...

Hoppas de menar allvar med WinUI 3, för försöker faktiskt använda det...

WinUI 3 kanske är något för @heretic16? Det är i grunden ett C++ bibliotek och vad det låter lite tänkt att bli ett "modernt Win32"... Men finns också bindings mot C# (är det jag använder).

Finns även en story för cross-platform stöd via något som kallas Uno-Platform (har inte använt det, möjligen är det C# only)
https://learn.microsoft.com/en-us/windows/apps/how-tos/uno-mu...

WinUI 3 kräver inte Visual Studio, men stödet utanför VS är lite so-so

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Hedersmedlem
Skrivet av heretic16:

Det finns en orsak varför QtCharts verkar ha problem med animeringen. Notera att jag pratar om QtWidgets nu. Inte QtQuick.
Det är därför QCustomCharts finns.

Är det fortfarande diagram (och animationer i sådana) det handlar om? Vad är det som inte fungerar? QCustomPlot är ett eget projekt som har vuxit fram parallellt med Qt. Med tiden har Qt fått allt mer avancerat inbyggt stöd för diagram och visualisering, men QCustomPlot har inte sällan ännu fler funktioner och alternativ. Men vad är det du försöker göra som inte går?

Skrivet av heretic16:

Man måste kompilera och använda speciella libs för att Qt ska fungera med MySQL. Detta är ett vanligt problem hos Qt.

Nja, det är väl främst databasdrivrutinerna som levereras som plugin:er som man själv måste bygga?

Skrivet av heretic16:

Nu jämfört jag äpplen mot päron. En applikation som jag har gjort i Qt är betydligt mycket långsammare än en applikation gjort i ImGui eller wxWidgets. Det är en skillnad faktiskt och det handlar om responstider. Jag tycker att ImGui är dock snabbast.

Men hur mäter du? Det är kanske inte en skillnad i ramverken utan snarare i din lösning? Många saker (som att skriva ut något när man klickar på en knapp) går väl till synes omedelbart i de flesta ramverk?

Skrivet av heretic16:

Qt har många onödiga makron och liknande saker som jag undrar "behövs detta verkligen?". Varken wxWidgets eller ImGui har detta. Men notera att jag är en person som försöker göra animeringar med QtWidgets. Dessutom tycker jag att Qt verkar ha lite av "det extra" som måste skrivas.

Den stora anledningen skulle jag tro är att man vill hålla MOC så enkel som möjligt. Istället för att behöva hålla koll på projektets alla klasser och hur de ärver av varandra kan man titta på varje fil för sig, söka efter Q_OBJECT (eller andra nyckelord) och göra något om så är fallet.

Skrivet av heretic16:

Jo, men det är ganska stora skillnader tycker jag.

Vilka skillnader? Det tillkommer förstås nya saker, men det är sällan gamla slutar fungera. Vid stora skiften (som Qt5 --> Qt6) kan förstås större saker ske).
[quote postid="20636107" userid="120146" name="heretic16"]
Man måste ändå ha en licens om man ska använda Qt kommersiellt.
[quote]
Nej, man kan välja mellan flera olika licenser. Det finns kommersiella licenser som utöver teknisk support ger stor frihet över hur man använder biblioteket, men man kan även välja LGPL eller GPL. LGPL är som sagt även vad WxWidgets använder, så om det fungerar där fungerar det troligen även här.

Skrivet av heretic16:

Oftast är det "skit bakom tangentbordet" som är felet. Men jag tyckte signal and slots är bra, men det kan lätt användas fel.
Jag tycker jag ser ingen direkt logik att ha en klass som kan helt plötsligt skicka en signal till en annan klass bara för att man sätter en connect mellan dom.

Varför sätter man då en connect mellan dem? Det är inget som händer utan att man själv har definierat signaler, slot:ar och dessutom har kopplat ihop dem...

Skrivet av heretic16:

Jag läser av USB porten via en tråd, samtidigt som jag uppdaterar en plot i realtid. Det var inte smidigt.

Jag tror som sagt att det finns en smidig lösning. Förmodligen behöver du inte ens ha flera trådar.

Permalänk
Skrivet av Yoshman:

WebGL är ju rätt moget numera. Går att skriva enklare 3D-spel som kan köras direkt i webbläsaren
https://youtu.be/MQE0AU-wZlY

och går också att skriva vertex-/fragment-shader för lite roliga effekter som t.ex. readtids-rendering av Mandelbrot/Julia

Klicka för mer information

<Uppladdad bildlänk>

Visa mer

Men det ändrar inte det du skrev om CV:t. Det är helt klart olika kunskaper som krävs för inbyggda-system vs desktop-appar vs web-appar.

Just desktop-applikationer känns ändå som det är rätt mycket på dekis. Ta Microsoft t.ex., vet inte hur många nya ramverk de har presenterat senaste 10-15 åren där flera aldrig nått användbar nivå innan de lägger ned och börjar på nästa...

Hoppas de menar allvar med WinUI 3, för försöker faktiskt använda det...

WinUI 3 kanske är något för @heretic16? Det är i grunden ett C++ bibliotek och vad det låter lite tänkt att bli ett "modernt Win32"... Men finns också bindings mot C# (är det jag använder).

Finns även en story för cross-platform stöd via något som kallas Uno-Platform (har inte använt det, möjligen är det C# only)
https://learn.microsoft.com/en-us/windows/apps/how-tos/uno-mu...

WinUI 3 kräver inte Visual Studio, men stödet utanför VS är lite so-so

WinUI 3 är ju bara för Windows? Jag vill alltid göra något som är krossplattform och enkelt.
Microsoft hittar alltid på något nytt.

- WinUI,
- WPF
- WinForms
- UWP
- MFC
- Maui

Jadu...jag vågar inte investera min tid i dessa. För man vet aldrig när Microsoft kastar ut dom. wxWidgets har funnits sedan 1992 och har fullt stöd än idag. QT har stötts sedan 1994. MFC uppfanns 1992. FLTK sedan 1998.

Men MFC låter bra tycker jag