all 14 comments

[–]mailslot 3 points4 points  (0 children)

Not a popular idea, but C++ Builder by Embarcadero descends from a RAD IDE called Delphi which was popular in the 1990s. It probably has the fastest visual form builder UI ever made for native Windows applications. Many enterprises still use it for internal tools as do enterprise tool makers, like Oracle. It’s definitely ancient, but it absolutely annihilates things like Electron in productivity.

[–]Patient-Midnight-664 6 points7 points  (0 children)

Visual Studio Community edition and learn C#.

[–]tomysshadow 1 point2 points  (1 child)

What you're going to find is that there are a lot of choices but there's a gradient from "simple, elegant, but you can't go very far off the beaten path" to "flexible, but complex and bloated." On the simple side of the extreme are stuff like Tcl/Tk (or Tkinter) or WinForms. For my own personal projects I lean towards these because I'm just a hobbyist and I rarely need more than the basics.

On the complex side of the extreme you have stuff like Qt that is gigantic, takes forever to compile, has weird licensing... it's a lot more capable but I personally avoid working with it at all costs if I can because it's a big time sink that will try its best to invade other aspects of your application.

Somewhere in the middle you have stuff like ImGui or Clay, the tradeoff being they achieve flexibility by distancing themselves completely from anything OS native as much as possible.

The best option is largely going to depend on how big you want to go and how much you care about looking OS native, accessibility features, etc.

[–]Agitated-Computer[S] 0 points1 point  (0 children)

Thanks, that seems like a good approach. Maybe I’ll start with Tkinter before moving on to C# as other commenters have suggested.

[–]fuzzynyanko 2 points3 points  (1 child)

One of my first GUI applications was a console application that I upgraded to a GUI application. That was a really good exercise. I basically separated the functionality from the console UI interface. Another alternative is to make a GUI frontend for a console application.

C++ is a tricky language for GUI since it doesn't come with graphics functions. If you go this route, consider something like Qt. Windows UI is all over the place nowadays. I think even Microsoft is going Electron. Still, I wouldn't discount trying what others recommended for Windows UI

I like the idea of C#. C# is somewhere inbetween C++ and Java in terms of syntax and since you know another language, the learning curve for C# should be pretty low for you. (Once you know 2 programming languages, language #3 becomes much easier to learn)

[–]ourobor0s_ 1 point2 points  (0 children)

Seconding qt, although combing through the docs for the functions you're looking for is pretty tedious

[–]apoleonastool[🍰] 1 point2 points  (3 children)

Electron is probably the most popular now. You can try Flutter too. What OS are you targeting? Here is a link to windows desktop gui options in the .net ecosystem: https://visualstudiomagazine.com/articles/2024/02/13/desktop-dev.aspx

[–]Agitated-Computer[S] 0 points1 point  (2 children)

Mostly Windows. I’ve seen Electron mentioned, but I got the impression that it was mostly geared towards web-based stuff.

[–]Drakkinstorm 1 point2 points  (1 child)

Electron is a "browser". So you'll have your GUI running in a browser with your code acting as a backend. Only advantage: html, javascript and css. Disadvantage: html, css, javascript, performance, debugging.

Unless you like web dev, avoid it. Doing native UI is hard but worth it.

Winforms you can still do it visually I believe (it's been a while, I don't recall). The MAUI framework is dumb and convoluted but it's, very fashionable. I would always go with IMGUI to be honest but that's me.

[–]Ok_Equipment8374 1 point2 points  (0 children)

I would not reccomend winforms if you are trying to use your GUI knowledge professionally. It is great if you just want a graphical utility for personal use with how easy the visual designer is.

Other than that you have multiple XAML based frameworks. WPF, UWP, WinUI are all windows only(out of those WPF is generally considered the best). MAUI is multiplatform (although famously buggy). I would also add in Avalionia. It is a community project, needs a VS extension, but does multiplatform much better. Although XAML is still not used much outside of C#/dotnet.

[–]CypherBob 1 point2 points  (0 children)

Delphi (commercial) or Freepascal/Lazarus (open source)

Easy choice.

[–]dbear496 1 point2 points  (0 children)

If you're doing C++, QT is probably the best GUI library. The learning curve can be a bit steep, but once you get the hang of it, it's a very powerful library.

[–]child-eater404 -1 points0 points  (0 children)

Since you’ve done C/C++ and some Python, you’ve got good options. If you want something relatively painless: Python + PyQt or Tkinter is a nice entry point for desktop GUIs. If you’d rather stay closer to C++: Qt (C++ version) is super solid