En fördel med Qt är att det transformerar C++ till ett helt nytt programspråk. Om man som jag tycker att C++ är ett feldesignat språk, så kan man dra nytta av att Qt tillför mer introspection och runtime-orienterade features. C++ är ju ett statiskt språk, allting händer i compile-time. Tack vare Qt:s basklass QObject så blir det ett riktigt bra runtime-språk, och det är väsentligt när man ska koda ett GUI.
Exempel på vad man kan göra i Qt:
döpa ett objekt när det skapas, och senare hämta pekare till objekt baserat på namnet.
fråga ett objekt om det är av en viss klass, och vilka klasser det ärver av.
få klass 1 att anropa metoder på en instans av klass 2 utan att den behöver känna till interfacet för klass 2. Detta kallas signals och slots, och har man inte Qt måste motsvarande funktionalitet implementeras med observer pattern.
anropa get/set-metoder baserat på en sträng innehållande egenskapens namn (liknar key-value coding i Obj-C)
XML-baserat format för att definiera dialogrutor, med en OK editor, Qt Designer (motsvarar nib filer i Obj-C och Interface Builder).
Sist men absolut inte minst: Qt definierar cross-platform klasser för det som händer bakom kulisserna: trådar, xml-parsning, nätverkskommunikation, med mycket mera.
Objective C är också ett utmärkt runtime-språk och lämpar sig också mycket bra att programmera GUI:n i. Jag skulle vilja påstå att kombinationen Obj-C + XCode + Interface builder är storleksordningar bättre än Qt, men funkar tyvärr bara på mac.