Your best library for create GUI ( gtk, qt, win32 api, etc )? [closed] Your best library for create GUI ( gtk, qt, win32 api, etc )? [closed] windows windows

Your best library for create GUI ( gtk, qt, win32 api, etc )? [closed]


If you are making the gui only for windows, I would strongly recommend WIN 32 Api. I have Made many applications in GTK+ , pyGtk , FLTK and have learned Qt, MFC and SmartWin++. Believe me , But I like Win32 Api the best. It may have a steep learning curve, but for creating native windows applications , it is the fastest and the BEST. And the more complex youre program gets, the easier Win32 Api is compared to other toolkits. And there are things you can do in Win32 Api, which you can not do in any other toolkit.

TESTED:

starting time (simple gui with menu and buttons): GTK+ = 7 secs;Qt = 4 secs;WxWidgets = 3.32 seconds;FLTK = 1 second;Win32 Api = 0.34 seconds;

space taken:Gtk+ = 132 kb;Qt = 4.5 mb;WxWidgets = 4.5 mb;FLTK = 54 kb;Win32 Api = 6.5 kb;


Let's see.

  • Win32 is very low-level, C based, and awkward to use.
  • MFC is considered obsolete.
  • C# (or C++) with .NET is probably your primary choice for Windows-specific development.
    • There are even semi-limited ways to port that code to other platforms (Mono).
  • Java is great for very platform-independent code that "just runs". Sorry, you said C++.
  • QT is relatively platform-independent.
  • GTK+, of course, although I personally don't have much experience with it.

Personally, if I do something Windows-specific, I use .NET - the tools in Visual Studio are very powerful, and it's a great all-encompassing suite.

For platform-independent stuff, I use Java, but that may not be your tool of choice. I've seen QT used a lot for that purpose.


You really have a lot of GUI toolkits/frameworks to choose from: Qt, wxWidgets, GTK+/gtkmm, WinAPI, MFC, .NET WinForms/WPF... and those are only the popular ones.

Since you limit yourself to C++, I'd strike out .NET because C++ on .NET is intended to serve as a connection between the unmanaged and managed world. That doesn't mean you can't use it for other types of development, but given the awkward syntax and countless pitfalls I'd not go with it. Moreover, the WinForms code generator of VS puts the forms' code into the header file.. brrrr

As others have stated, WinAPI is written in C, very fast and powerful, but very low level and not easy to program/learn. MFC would be an option since it's written in C++, easier to use than WinAPI and also very powerful. However, it's pretty much obsolete (due to the presence of .NET, mostly).

I wouldn't recommend GTK+/gtkmm (a C++ wrapper for GTK+) for Windows since you don't get the native windows look, it's rather annoying to set up on your developer machine and it also drags around tons of dependencies that you have to install on the user machine. That's actually a pity because especially gtkmm has a very beautiful class hierarchy and design. Probably one of the best designed GUI libraries :)

That said, what would I recommend? Either Qt or wxWidgets. Both are written in (fairly modern) C++, actively developed, have a good library design, run multi-platform and offer lots of functionality. In any case, play around with a few of the libraries listed in the answers here and see which one lets you do the things you want to do most easily :)