Una pequeña orientación (c++, qtdesigner)

Buenas a todos. Me acabo de iniciar en el mundo de c++ y más concretamente utilizando qt+qtdesigner.
Aunque comience con c++ ahora, ya tengo nociones de java y de c, asique no me cuesta comprender el tema de la POO ni tampoco la sintaxis, aunque por lo que estoy viendo qt utiliza clases propias para todo, incluso para los tipos de datos, parece un lenguaje de programación aparte...
El qtdesigner lo uso sólo para hacer la interfaz, no toco el tema de signals/slots (más que nada para separar la interfaz del resto del código).

Lo que hago es crear una clase que deriva de QWidget y que hace uso del fichero "interfaz.h" (generado por qmake a partir de "interfaz.ui") para declarar una variable privada del tipo interfaz.
El main simplemente crea un objeto a partir de esta clase previamente definida y le hace un .show. La interfaz ya está en pantalla.
Lo que me gustaría saber es si voy bien encaminado (veo que hay gente que usa kdevelop+qtdesigner pero yo no lo he conseguido) y luego mi principal duda es cómo usar las señales y las ranuras y como definir las mías propias (por ejemplo pulso un botón y se ejecuta una función cualquiera definida por mi).
Hasta ahora sólo he conseguido usar las señales utilizando la lógica del qtdesigner, enlazando unos objetos con otros, pero eso es muy básico y no hace lo que yo quiero.
La verdad es que hay multitud de tutoriales por internet, aunque donde mejor lo explican es en la página oficial:
http://doc.trolltech.com/

Yo suelo hacer esto:
Creo la interfaz con el Qt-designer y una clase que hereda de ella. Implemeto el constructor para que llame a la función setupUi y conecte las señales con métodos de la clase. Qt-designer te permite conectar salidas de un widget con la entrada de otro, hazlo si te es posible. Si quieres meter código de por medio, mejor hazlo a mano.
Aquí viene explicado:
"The Multiple Inheritance Approach".
http://doc.trolltech.com/4.4/designer-u ... onent.html

Las conexiones son muy fáciles:

newClass.h
#ifndef _NEW_CLASS_H
#define _NEW_CLASS_H

#include <QDialog>
#include "ui_newClass.h"

class newClass: public QDialog, public Ui_newClass
{
   Q_OBJECT

   public:
      newClass(QWidget *parent = 0);
   public slots:
      void foo();
};
#endif


newClass.cpp
#include "newClass.h"

newClass::newClass(QWidget *parent) : QDialog(parent)
{
   setupUi(this);
   connect(button, SIGNAL(clicked()), this, SLOT(foo()));
   this->show();
}

void
newClass::foo()
{
   printf("FOO\n");
}


Un saludo.
Mil gracias Jaime, la verdad es que me estoy apoyando en la documentación de trolltech para aprender (es completísima a pesar de estar en inglés) pero no encontraba la manera de conectar una señal con una función propia, solo cómo conectar la salida de un objeto con la entrada de otro.
Es bastante sencillo por lo que veo.

Gracias de nuevo, un saludo.
2 respuestas