esque la onda esta en que una vez instalas el software (el IDE) , ahi cuando estas creando el codigo el te crea el codigo para lo grafico que estas creando y agrega unas encabezados para el mismo ambiente grafico.
Por ejemplo mira el main del programa
#include <qapplication.h>
#include "conversionform.h"
int main( int argc, char ** argv )
{
QApplication a( argc, argv );
conversionform w;
w.show();
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
return a.exec();
}
Incluis el aqpplication.h y luego el formulario que lo crea como una libreria , conversionform.h .
pero vos ves bien poco codigo ya que vos graficamente manejas como se veran las cosas pero el codigo de lo grafico el te lo crea , no le metes mano (a menos que queres).
Y luego te encargas de definir las funciones del formulario
#include <qvalidator.h>
void conversionform::init()
{
numberLineEdit->setValidator( new QDoubleValidator( numberLineEdit ) );
numberLineEdit->setText( "10" );
convert();
numberLineEdit->selectAll();
}
void conversionform::convert()
{
enum MetricUnits {
Kilometers,
Meters,
Centimeters,.
.
.
.
.
}
Y vos ves bien poquito codigo y podes llegar a pensar que es poco, pero cuando abris el codigo completo en realidad ha creado unos sus cpp con un gran desmadre y fumadencia que vos ya te imaginaras tipico de c++

Y las aplicaciones quedan ambientadas cada una al tipo de entorno en el que la has desarrollado.
Un ejemplo que te puedo dar es por ejemplo el Skype para Linux es desarrollado en qt , no se si ocupan el IDE de trolltech pero si ocupan el toolkit.
Una de las diferencias de hacer codigo en java seria que en java vos lo compilas en un sistema y ese jar lo podes correr en cualquiera, en cambio este codigo en c++ con qt lo tenes que recompilar dependiendo el sistema para el que lo queres. Si lo compilas en linux te hace un tu bin y si lo haces en windogs te hace tu exe.