We cannot discuss all C++ libraries, can only focus on UI development, which the the topic most difficult for cross-platform development. I also don't want to discuss anything commercial (like VCL), except Visual Studio which I guess you have.
You already know about Qt. (I answered here:
is the Qt creator with its library(Qt 5) best choice for c/c++ ?[
^].)
What else?
First of all, GTK+:
http://en.wikipedia.org/wiki/Gtk[
^],
http://www.gtk.org/[
^];
see also:
http://en.wikipedia.org/wiki/Gtkmm[
^].
Another well-known library is wxWidgets:
http://en.wikipedia.org/wiki/WxWidgets[
^],
http://www.wxwidgets.org/[
^].
And, finally, FLTK:
http://en.wikipedia.org/wiki/FLTK[
^],
http://www.fltk.org/[
^].
You will probably find some more if you see Wikipedia cross-references from the pages I referenced above, but I listed the most well-known ones.
If you know or want to master C++/CLI, it would open the world of CLI and CLR to you, which is good for development on many platforms, first of all, via Mono:
http://en.wikipedia.org/wiki/Mono_%28software%29[
^],
http://www.mono-project.com/[
^].
In this approach, all your .NET application, when developed accurately and according to standards, will work on any of the platforms
without recompilation. Also, you will get access to the very thorough language compatibility with all CLI languages:
http://en.wikipedia.org/wiki/List_of_CLI_languages[
^].
See also:
http://en.wikipedia.org/wiki/CLI[
^],
http://en.wikipedia.org/wiki/CLR[
^].
Unfortunately, the only library for UI development is
System.Windows.Forms
, but it's quite rich.
[EDIT #1]
But with Mono, you can also use CLI version (ports or wrappers) of GTK+, Qt and more.
[END EDIT #1]
On C++/CLI, please see:
http://en.wikipedia.org/wiki/C%2B%2B/CLI[
^],
http://www.ecma-international.org/publications/standards/Ecma-372.htm[
^],
http://msdn.microsoft.com/en-us/library/xey702bw.aspx[
^];
see also
http://www.gotw.ca/publications/C++CLIRationale.pdf[
^].
CLR, CLI and C++/CLI are standardized under ECMA and ISO, which is a huge plus.
[EDIT #2]
I forgot to mention IDE.
On Windows, you can develop on Visual Studio. With experience, you hopefully would be able just to rebuild the solution on Linux (not required for C++/CLI + Mono, as you can install Mono on Windows and test it all there).
However, in real life, some developing and debugging on other platform can be required. On Linux, I would recommend Anjuta:
http://en.wikipedia.org/wiki/Anjuta[
^],
http://www.anjuta.org/[
^].
In case of C++/CLI, you can use MonoDevelop, which is also available for Windows:
http://en.wikipedia.org/wiki/MonoDevelop[
^],
http://monodevelop.com/[
^].
Moreover, C++/CLI UI based on GTK+ or Qt is better to develop with MonoDevelop IDE than on Visual Studio.
Also, Qt comes with its own IDE which I did not try.
I really advise you to spend some time and try all of the options to decide which you would prefer. It's really hard to give a final advice.
—SA