maybe I should be more specific about targets: windows and linux desktop (32/64), iphone, android, windows phone 7, pandora of course and maybe mac & symbian ?
Good freaking luck.
Uh, here's my understanding, to the best of my knowledge:
Qt is amazing, has native C++ bindings and some Java and Python bindings which are rumored to be decent. It comes with its own C++ IDE that has a lot of cool features and I use regularly.
With Qt, you can nail desktop Windows, desktop Linux, and supposedly Mac (Though I've heard people complain about Qt for Mac, I don't use any Mac hardware so I can't say) It also should work on the Pandora though I haven't tried it and I suspect all the floating-point stuff in GraphicsView may be slow (Or not, who knows).
However, the iPhone is silly. IIRC you can only use Apple's Objective-C to program it, which definitely would not have Qt bindings since Qt is free and most of their users wouldn't pay to develop for iPhones. Qt is also owned by Nokia, who competes with Apple, so I doubt they're in a huge hurry to port their GUI framework to an enemy device. As far as I know, GTK+ wouldn't run on it, either.
Android is also silly, but from what I've heard they finally released something that lets you program in C / C++, and the Qt guys are working on an abstraction of windowing systems, so it's possible a Qt / Android port will exist at some point. Again, I don't think Nokia's in any hurry, so it might be a user-made port. Basically, don't count on it, but it's more likely than the iPhone port.
No idea what Symbian does, probably something wacky and locked-down like iPhone has.
Windows Phone 7 is no doubt the same, you'd have to get their proprietary SDK and agree to some license and maybe pay some money and it would all be as difficult as possible.
If you restrict yourself to desktop Linux and Pandora Linux, you can have any of the quite a load of Linux-friendly GUI toolkits: Qt (C++-only, but I love it because it's huge and can do anything), GTK+ (C by default, there is an OO C++ binding called gtkmm. GTK is kind of ugly though, so I don't like it), FLTK (Very lightweight, doesn't care much about looks, and mysteriously split into like 4 different versions. It's probably easier to setup than Qt or GTK+, and always way smaller and faster, but you might end up implementing things on your own most of the time), WxWidgets (heard it's bad, and I think it just delegates to GTK+ on some level)
If you want Windows, Linux, and OS X, then you have Qt and GTK+. I've heard GTK+ is bad on Windows, but I personally have found Windows to be hostile to any sort of programming, and Pidgin uses GTK+, so it's possible to make it run on Windows.
Of course if you develop a web application, it will work decently on any device with Internet. (assuming you don't use Flash or Java Applets) But as the saying goes, "A developer has a problem, and he decides to build a web application. Now he has two problems."
Edit: If you don't need a GUI, then you can use almost any popular language (C, C++, Python, Ruby, JavaScript, PHP, Java, LISP, Lua) unless you're on a cell phone, because cell phone makers are all stupid and insist on proprietary programming tech whenever possible. Android is mostly developed in Java, but I heard they opened up C / C++ recently, iPhone is Objective-C only, Symbian probably does something stupid.
Of course you could port the Python VM to Objective-C and run your Python program on the iPhone that way... It would be a total pain.
Hopefully now you can understand why cross-platform things are such a pain. Because of the ****ing cell phone manufacturers. IT IS SERIOUSLY ALL THEIR FAULT.