【发布时间】:2011-05-26 06:28:13
【问题描述】:
我正在尝试在一个链中创建多个窗口:窗口 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);
}
【问题讨论】: