QWidget在主窗口关闭时不会关闭。

10

我试图创建一个主窗口(QWidget),当点击一个按钮时它会打开一个新的QWidget,但是当我关闭主窗口时,最近打开的QWidget并没有关闭。

main.cpp

QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();

mainwindow.cpp(父级)

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

out.cpp (子进程)

Out::Out(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Out)
{
    ui->setupUi(this);

}

1
你可以贴上代码吗? - kenrogers
有很多行代码,我不知道哪一部分是我必须发布的。 - Alex L.
我建议您编写一个尽可能小的示例来重现问题,并发布它。但首先,您的 main.cpp 文件是什么样子的? - kenrogers
2个回答

13

我猜你在寻找Qt::WA_QuitOnClose

当最后一个设置了该属性的小部件接受closeEvent()时,使Qt退出应用程序。这种行为可以通过QApplication::quitOnLastWindowClosed属性进行修改。默认情况下,此属性适用于所有类型为Qt::Window的小部件。

在这种情况下,你可能需要调用:

myWidget->setAttribute( Qt::WA_QuitOnClose, false );

1
这是关于Python的内容。
尝试创建如下所示的函数。
def func_quit_all_windows():
  sys.exit()

记得要import sys

当按钮被点击时调用该函数

btn.clicked.connect(func_quit_all_windows)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接