Цель:
Есть основное окно. В зависимости от задач пользователь может через это основное окно открывать другие окна/задачи(form1, form2, form3), делать там что надо, переключаться между ними в зависимости от результата. Поэтому для каждой задачи только одно окно.
Открываются они так:
if (Form1 == 0)
{
Form1 = new FormT1(this);
Form1->show();
this->btOpenF1->setText("Закрыть F1");
}
else
{
Form1->close(); //в самой форме прописанно полностью закрываться, что бы небыло утечек.
Form1 = 0;
this->btOpenF1->setText("F1");
}
Всвязи с этим 2 вопроса:
1. От чего унаследовать Form1? На ней я програмно раскидываю контролы. Если от QDialog, то Form1 перекрывает основное окно, что неправильно. Пробовал наследовать от QWidget. Но тогда создается не новая форма, а элементы укладываются прям на родительское окно

. Как это можно побороть? в примерах везде наследование делается от QDialog, но, если я правильно понимаю, оно всегда будет поверх родительского.
2. Как мне известить родительское окно о том, что пользователь закрыл Form1 не через кнопку на родительском окне? Думал сделать так:
connect(Form1, SIGNAL(

??), this, SLOT(closeForm1())); Но не нашел сиглал. который посылает Form1 при закрытии.
Подскажите, как правильно реализовать эти 2 вопроса.
PS п2 снимается с повестки. Случайно наткнулся на сигнал destroyed(). Все заработало как надо.
А вот с QWidget ничего не получается. Может кто-нить примерчик маленький кинет как создать дочернюю форму, не наслудуя её от QDialog.