QT ist unter GPL lizenziert und braucht zum übersetzen einen eigenen Preprozessor. Die Sprache ist C++
GTK+ ist unter der LGPL lizenziert und in C geschrieben hat aber mit GTKmm eine C++ Anbindung die ohne Preprozessor auskommt und im gegensatz zu Qt ganz gut mit der C++ Standardbibliotek zusammenarbeitet.
Du kannst aus einem QString nicht auf die schnelle einen std::string machen, der Glib::ustring ist im Prinzip nur ein Hilfsmittel um mit Zeichensatzen mit variabler Breite wie z.B. UTF-8 nicht auf byte-basis sondern auf Zeichenbasis arbeiten zu können.
QT ist unter KDE nativ und GTK+ unter GNOME. Qt musst du kaufen wenn du dein Programm nicht unter der GPL veröffentlichst, GTK+ unter den Bedingungen der LGPL nicht( GTK+ kannst du wohl nicht kaufen

)
Qt kann man statisch Linken, was für Win Programme von Vorteil ist, bei GTK+ musst du immer auch die .so / .dlls mitliefern.
Ich habe nie groß Swing eingesetzt (Java hatte ich nur in der Schule und die Oberfläche haben wir bei Bedarf fertig bekommen, nur die Logik haben wir dann selber geschrieben) aber wenn ich mich recht erinnere lässt sich das wohl mit GTK+ ohne Glade vergleichen.
Mit Glade kann man die GTK+ Oberfläche in Form von XML-Files erstellen und entsprechend einfach ändern, den Editor fand ich eigentlich ganz angenehm (ähnlich wie bei GIMP unter Win nicht so praktisch durch die vielen Fenster, aber mit Virtuellen Arbeitsflächen ...)