当我们在 qt 中关闭窗口时发出的信号是什么

Man*_*u53 4 c++ qt

我的 MainWindow 可以打开第二个窗口。

当我单击第二个窗口中的按钮时,会启动一个线程,我希望在退出第二个窗口时结束线程。

当我的 SecondWindow 关闭时发出的信号是什么?

谢谢你的未来答案

aat*_*two 7

当小部件(包括 QMainWindows)关闭时没有发出信号。如果小部件设置为在关闭时被删除,那么您可以使用以下 QObject 信号来检测小部件何时将被销毁...

void    destroyed(QObject *obj = Q_NULLPTR)
Run Code Online (Sandbox Code Playgroud)

但是,这仅在您的窗口启用了 Qt::WA_DeleteOnClose 标志时才有效(默认情况下未启用)。

或者,可能更优选的是,您可以实现标准的小部件关闭事件并发出您自己的信号以指示窗口已关闭:

void MainWindow::closeEvent( QCloseEvent* event )
{
    emit MySignalToIndicateThatTheWindowIsClosing();
    event->accept();
}
Run Code Online (Sandbox Code Playgroud)

  • 事实上,Qt 默认情况下不会发出这种信号,这让我想知道手动实现它是否是一种不好的做法。对我来说似乎是基本功能。 (4认同)