I've been write window programs with C# + WPF for a while now. It is very good, has alot of rich elements as of .NET 4.5 but I dont really buy the idea of porting window based programs to other operating system like OS X using mono and others. 
I started working on Java and Python, I haven't written any desktop based program with anyone of them yet as there are war of GUI framework/toolkit out there and everyone is just getting religious about things.
I need some clarification hence the following Questions, mind you these questions might be answered before but like I said, Clarifications:

What is the different between GUI toolkit and GUI framework
For Java programming, I see swing is integrated with Netbeans, from my research, people are speaking of qt's Jambi and GTK for java and python, I have no idea about any of these and I want to know, (1) Which do you use and why? (for Java and python), (2) Visual studio do all the magic for WPF and C#, which IDE can do these magic in java and python.
Lastly, I want you all to know that my asking these question is just to know which rich, powerful GUI and cross platform toolkit/framework (Whichever the right term is) is best for java and python with easy learning curve.

Constructive criticism  are welcome BUT, I will be glad if there are answers.
I know QT is for Java (and Python of course). It is well documented and is used by a lot of people around the world.
Best GUI Toolkit/Framework for Java and Python