10

我正在尝试制作一个主窗口(QWidget),当单击按钮时会打开一个新的 QWidget,但是当我关闭主窗口时,最近打开的 QWidget 不会关闭。

主文件

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);

}
4

2 回答 2

13

我怀疑你正在寻找Qt::WA_QuitOnClose

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

在这种情况下,您可能应该调用:

myWidget->setAttribute( Qt::WA_QuitOnClose, false );
于 2013-05-09T18:41:10.147 回答
1

这是为 Python

尝试创建一个如下所示的函数

def func_quit_all_windows():
  sys.exit()

记得import sys

单击按钮时调用该函数

btn.clicked.connect(func_quit_all_windows)
于 2020-10-24T13:40:53.927 回答