Okay, so to be clear, most people in the who write applications commercially use the Qt Libraries to write GUI applications?
Short and long answer - yes. The easy way to check that out is to run/view their samples.
Qt class libraries handle GUI stuff in a couple of ways without resorting to additional libraries depending on exotic cases that a specific application might require or purpose built.
I think you'll also find Qt has extremely wide application commercially. The open source nature is only relevant in terms of the classes and their use, the same as C++, Windows and the like are developer accessible.
For a single user hobbyist the commercial software contract is a very expensive option. Qt is also cross platform - there is even a Windows version.
Qt also handles console applications ...
That's why I suggest both are worthy of knowing about. Qt = 9/10, VS = 8/10
Common old Microsoft dedicated Windows apps? My guess is Visual Studio.
visual studio has built in gui tools. I think it also has backwards compatible MFC + whatever they call the new one (is it just called .net now?). QT can be installed and used inside it as well. WX can as well, but like you, I found that one aggravating.
I suggest you do just a little in microsoft's even if you stick with QT mostly. They do things differently, and its worth knowing a little of both.
C++ is still used in a lot of console programs, yes (if this was a question?).
specifically, its used as library executable code behind a slow (but easier to build a gui in) language when performance is a concern -- the key fast parts in c++, the UI and glue in the other language. Also a lot of embedded programs are C/C++ and have no UI at all (console or other) they just fire up and run without interactions (eg, reading a device and sending it commands if some event happens). Console programming is alive and well.
For the past few years what I've been doing for GUI is write the core components in C++ as a library and then link to that library dynamically from a WinForms C# application, where I do all the GUI work. This has a few benefits:
* I don't have to deal with a huge library like Qt, which is always a hassle.
* I can design the GUI in Visual Studio's designer, which is still IMO superior to Qt Designer.
* Handling events is easier in C# than in Qt's framework.
* The presentation is strictly separated from the processing, which forces you to embrace a cleaner design.
It also add some problems, however:
* Now the project has to deal with multiple languages, which can complicate building in some situations. I still haven't quite figured out how to build .NET projects in Linux, but thankfully you can usually just copy the executable and it works.
* You have to design the interface between the two languages and deal with passing data back and forth, which can be tedious.
* You have to be extra-careful when passing data across the DLL boundary, because it's easy to declare something as the wrong type and trigger undefined behavior.
Been at this since the 90s and all I ever use are the libraries Microsoft provides with its build system, i.e., compiler, linker, etc. Haven't hardly used an IDE since maybe VStudio 2008. I build from the command line. Surprising to me nobody mentioned this. I like my code running on bare metal.