From the FAQ I read:
Assuming you have two form classes: Form1 and Form2 and that Form1 has a pushbutton "button" child and Form2 is derived from QDialog.

Add a custom slot to Form1 and fill it with:

void Form1::openForm2(){
static Form2 *form2 = new Form2(this);
form2->show();
form2->activateWindow(); // or form2->setActiveWindow() in Qt3
form2->raise();
}

If you want Form2 to be modal change it to:

void Form1::openForm2(){
Form2 form(this);
form2.exec();
}

Then you have to connect a proper signal to this slot. In the constructor of Form1 add:

connect(button, SIGNAL(clicked()), this, SLOT(openForm2()));
It's not clear yet, at least for me. I still have some questions:

1) The 2 Forms have to be in the same file?

2) Where I add the code? Into the .cpp or .ui or wherelse?

3) Could the 2nd Form be derived from QWindow or not?