GUI applications

Pages: 12
Hi,

Total noob question here, so I do apologise.

So, a lot of tutorials online show the presenter using Visual Studio.(Often Community but also sometimes the full version.)

So, unless they’re only writing text-based apps, they must be using some kind of GUI library.

In my search, I’ve settled on Qt for GUI programming.
I’ve also toyed with wxWidgets, but ultimately found it much more troublesome to install and tricky to use.

If Visual Studio is the preferred GUI (especially in the Commercial realm) then what is the generally preferred library for writing GUI applications?

If Microsoft would love to have the world writing their code using Visual Studio, do they also have a workable Set of libraries to use with C++ whilst using their IDE?

If not, what does the Visual Studio-using, GUI application-programming community around the world generally tend to use?

Many thanks.



Okay, so to be clear, most people in the who write applications commercially use the Qt Libraries to write GUI applications?

Thanks.
I doubt that many commercial apps use Qt since the commercial license is quite expensive.
Qt seems more popular with open source projects.
Okay, then which libraries do the bulk of commercial C++ coders use for your plain ol’ regular commoner-garden Windows apps use?

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.
Yes, Qt Creator is what I’m using at the moment.
I understand it is somewhat popular.

But given that Microsoft Windows has been around for 25 years, people have been writing apps mainly with Qt?
What other libraries are popular?

I know of GTK+ as a group of libraries.

Surely there are more options than this that have been in use over the last 25 years.

Anyone know?

Thanks.
On Windows MFC was quite popular at some time.
It's difficult to say what companies use nowadays. Microsoft, Adobe, Apple...don't seem to make public their choices.
Apple = XCode and C++/Swift/Cocoa
25 years? More like 30-35. Windows 1 was released in 1985, but I'd say it wasn't until Windows 3.0 in 1990 that it gained traction.

Borland's Delphi and C++Builder had a nice set of libraries. Both were bought by Embarcadaro and lives on to this day. There's a free community edition of C++Builder.
https://www.embarcadero.com/products/cbuilder/starter
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.
@dhayden, interesting to see Embarcadaro is going the "Community Edition" route. Trying to follow MS in offering full-featured IDEs for free?

Thanks for the link, I might try out the C++Builder Community Edition, I remember version 6 I received for free when working at a retail computer store. I always liked the ease of RAD.
I am also a fan of builder. I much preferred it over VS back in the day. I think I will give that one a try.... its been a while since I bothered to put a gui on anything.
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.
Ah HA! There is a Community Edition of Delphi as well! https://www.embarcadero.com/products/delphi/starter/
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.
Been at this since the 90s
Wow, that's a long time to work on the one program.
visual studio has built in gui tools.


Does this set of tools/libraries have a name?
Is there a link to where one might begin with the basics of this?

I suggest you do just a little in microsoft's even if you stick with QT mostly


Yes, this is what I was looking to do.
When you say "microsoft's" are you referring to .NET or are you referring to the abovementioned (unnamed) set of "Built-in GUI tools"?

Thanks.
https://docs.microsoft.com/en-us/visualstudio/ide/create-csharp-winform-visual-studio?view=vs-2019


Thanks for this.
This example is C#.
Is that to say that these native libraries are only available for C#? (i.e. not C++)

I haven't started on C# yet, so not sure I want to take on another language when I'm still learning C++ in its entirety.

Many thanks.
Pages: 12