Search first then ask.
But, well, I am not feeling evil today.
So here they are:
http://freshmeat.net/articles/view/928/
In my personal opinion, you should choose between: wxWidgets, gtkmm, and qt because they have big support from community or vendor and nice tutorial and documentation.
Try them then pick one of them. Specialize. And you will be a good developer.
Because I am gtkmm fans, I will campaign gtkmm using.
Here's what gtkmm developers said about why you have to choose gtkmm library:
Why use gtkmm instead of GTK+?
gtkmm allows you to write code using normal C++ techniques such as encapsulation, derivation, and polymorphism. As a C++ programmer you probably already realise that this leads to clearer and better organised code.
gtkmm is more type-safe, so the compiler can detect errors that would only be detected at run time when using C. This use of specific types also makes the API clearer because you can see what types should be used just by looking at a method's declaration.
Inheritance can be used to derive new widgets. The derivation of new widgets in GTK+ C code is so complicated and error prone that almost no C coders do it. As a C++ developer you know that derivation is an essential Object Orientated technique.
Member instances can be used, simplifying memory management. All GTK+ C widgets are dealt with by use of pointers. As a C++ coder you know that pointers should be avoided where possible.
Less code. The GTK+ C object model uses prefixed function names and cast macros. For instance:
gtk_button_set_text(GTK_BUTTON(button), "sometext");
gtkmm C++ code is shorter and clearer. For instance:
button.set_text("sometext");
There's no need to worry about GTK+'s inconsistent reference-counting policy.
gtkmm developers tend to prefer gtkmm to Qt because gtkmm does things in a more C++ way. Qt originates from a time when C++ and the standard library were not standardised or well supported by compilers. It therefore duplicates a lot of stuff that is now in the standard library, such as containers and type information. Most significantly, they modified the C++ language to provide signals, so that Qt classes can not be used easily with non-Qt classes. gtkmm was able to use standard C++ to provide signals without changing the C++ language.
Also, gtkmm and gnomemm allow you to build software which works more closely with the GNOME desktop.
I choose gtkmm because I use Gnome desktop. It is not funny if I develop qt applications using Gnome desktop.
Happy programming!!!!