Здравствуйте.
Есть форма с QCheckBox при checked по которому создается экземпляр другой формы (form2), при unchecked, соответственно, экземпляр form2 удаляется:
Form_1::Form_1(QWidget *parent) :
QDialog(parent),
ui(new Ui::Form_1)
{
ui->setupUi(this);
connect(ui->checkBox_1, &QCheckBox::stateChanged, this, &Form_1::showForm2);
}
...
void Form_1::showForm2(int state)
{
if(state == Qt::Checked) {
form2 = new Form_2(this); // Form2 *form2; declared in form1.h
form2->show();
connect(form2, &Form_2::finished, [this](){
ui->checkbox_1->setCheckState(Qt::Unchecked);
});
}
else if (state == Qt::Unchecked){
delete form2;
}
}