Я пытаюсь создать несколько цепочек в цепочке: окно 1 является родительским элементом окна 2, окно 2 является родительским элементом окна 3 и т.д. Когда я закрываю одно окно, я хотел бы, чтобы все его дети тоже закрылись, В настоящее время, если я закрываю окно верхнего уровня, все остальные закрываются, как надеялись, но закрывают, например, окно 2, закрывает только окно 2, а не окно 3 и т.д. Как я должен это делать? Спасибо за вашу помощь!
main_window.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
QPushButton* button = new QPushButton("Open 1", this);
connect(button, SIGNAL(clicked()), this, SLOT(on_button_clicked()));
}
void MainWindow::on_button_clicked() {
window1 *w = new window1(this);
w->show();
}
window1.cpp
window1::window1(QWidget *parent) : QWidget(parent)
{
this->setWindowFlags(Qt::Window); // in order to have a free-standing window
QPushButton* button = new QPushButton("Open 2", this);
connect(button, SIGNAL(clicked()), this, SLOT(on_button_clicked()));
}
void window1::on_button_clicked() {
window2 *w = new window2(this);
w->show();
}
window2.cpp
window2::window2(QWidget *parent) : QWidget(parent)
{
this->setWindowFlags(Qt::Window);
QLabel* label = new QLabel("Window 2", this);
}