我试图在一个链中创建多个窗口:窗口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",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); }