Man programmiert nicht "unter Qt".
Qt ist, wie schon gesagt, "nur eine C++ Klassenbibliothek". Wie es auch die MFC ist. Das ist auch nur eine Bibliothek, die in C++ Programmen benutzt werden will.
Man kann Qt-Oberflächen komplett manuell programmieren, kann aber auch einen Oberflächendesigner nutzen (Qt Designer).
Qt bietet nicht nur Klassen um Oberflächen zu erstellen, sondern auch jede Menge anderer Klassen: QString, QTimer, QFile, QXmlStreamReader und verdammt viele mehr.
Das heiß, man kann auch Konsolenanwendungen schreiben, die Qt Klassen nutzen.
Nahezu jeder Compiler kann zum übersetzen für Programme, welche die Qt Bibliothek nutzen, benutzt werden.
Ich hänge mal eine Liste an. In der ist nahezu jeder Compiler und jedes System aufgelistet.
Wenn man nicht darauf steht alles von Hand zu machen können Qt-Projekte auch im MS VisualStudio entwickelt werden. Oder in Eclipse, oder in CodeBlocks oder in ...
Bücher gibt es auch einige über Qt:
http://www.qtsoftware.com/developer/books
Auch in Deutsch.
Die Lernkurve zur Qt Bibliothek ist sehr steil.
Will heißen, dass man sehr schnell viel über die Bibliothek und deren Anwendung lernt (Beispiele und Tutorials habe ich schon erwähnt). Einsteiger haben schnell Erfolgserlebnisse und bleiben dabei. So war das bei mir. Während des Studiums habe ich zum ersten Mal damit rumgespielt und war von Anfang an begeistert.
Grund für das alles ist ein sehr einheitliches Konzept bei den Klassen. Damit meine ich, dass alles irgendwie ähnlich ist. Kennt man das schon ein paar Klassen (und deren Methoden), dann ist es recht einfach neue Klassen zu benutzen, weil einem irgendwie alles bekannt vorkommt (ähnliche Methodennamen, oder zumindest bekanntes Namensschema). Man muss nicht jedes Mal umdenken.
(Ich komme mir grad vor wie ein Vetriebsmitarbeiter bei Qt Software. Bin ich aber nicht

. Bin nur ein Qt-Fan)