Hi guys,
I have done some basics with C++ language and I want my litle programs(rock paper scissors for example) to have some design...so should I start with win32 or Qt library? I would appreciate explanation of ways how to do GUI....I dont know a lot of about that so any information wil be helpful...thnaks
QT is probably one of the easiest libraries to use. It has an easy-to-use designer and IDE, it comes with extensive documentation, and it's not just a GUI library. It's... like Win32, except cross-platform, C++, and friendlier (IMO). LGPL.
WxWidgets is like QT in that it is not just a GUI library and that it's in C++. However, WxWidgets takes a somewhat different approach than QT. For starters, WxWidgets uses MFC-style macros for changing the functionality of derived classes while QT uses lots of virtual functions. Modified LGPL (exception for derived works in binary form).
GTK+, unlike the above two, does not use native widgets by default. It looks, feels, and acts exactly the same across all platforms, and this can be a good thing or a bad thing. You can skin it to look native, though. GTK+ is also a GUI-only library and is to be programmed in using C, although there is a C++ wrapper (gtkmm). LGPL 2.1.
FLTK is a very lightweight library, that, like GTK+, does not use native themes. Also, it's OO design I found to be... flimsy. However, it has some very elaborate custom widgets. Modifier LGPL (exception for static linking).
1. Intuitive (Some times I perfectly guess a function name with all matching cases).
2. Powerful.
3. Documentation, Documentation and Documentation.
4. Cross-Platform.
5. Rich IDE with a built-in GUI designer.
6. Lightweight compared to its productivity.
7. Native widgets on the supported platforms.
8. The LGPL version.
9. Professionals use it; Skype, Google Earth, KDE, etc.
Just to name a few.
Personally I call it "What a complete C++ should have been".
Well, WIN32 is way to go if you want to focus on Windows. Otherwise choose one of the cross-platform toolkits that hamsterman and Albatross list.
If you're looking for a reason to choose one, you could check out the Wikipedia pages for the various toolkits; they list some of the open source projects that use them. If a project interests you, aiming to one day understand it might give you some added motivation. (You could even go and browse the project source trees?)
Also, googling for "qt versus gtk+" -- or any other permutation -- will lead you to assorted debates about the relative merits, in case you interested in a wider range of opinions. I have no strong attachment to any of the cross-platform toolkits, being primarily a Windows programmer (WTL/MFC/WIN32)
Qt is the most powerful, and prob. the most widely used. The reasons people chose not to use it are: (a) its licensing (It's friendly if you're open source, but not for closed-source commercial use. wxWidgets is quite popular in these circumstances), and (b) its weight (If you need all the system abstraction, fine. If you just need a lightweight UI for (e.g.) a game, it's prob. overkill. FLTK is quite popular for a lightweight window to host OpenGL, etc). Learning Qt also requires you to learn about their tools, including the meta object compiler (moc).
Or, if you have time, the disk space, and the inclination, why not have a quick go with all of them. Check out the samples they provide, to see which appeals to you the most.