Qt QMainWindow at Close

Cen*_*noc 10 c++ qt

这似乎是一个非常简单的问题,但我想在QMainWindow关闭时转储一些数据,所以我使用了以下代码:

QObject::connect(MainWindow.centralwidget, SIGNAL(destroyed()), this, SLOT(close()));
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有让它成为可能close().我做错了吗?
是不是中央人员应该被摧毁?

或者也许应用程序在close()被调用之前关闭?

那么做其他任何方式呢?

mos*_*osg 24

你最好在主MainWindow类中重新实现一个虚函数,如下所示:

class MainWindow : public QMainWindow {

    Q_OBJECT;

public:
    MainWindow();

protected:
     void closeEvent(QCloseEvent *event);
}
Run Code Online (Sandbox Code Playgroud)

然后在源文件中声明:

void MainWindow::closeEvent(QCloseEvent *event) {
     // do some data saves or something else
}
Run Code Online (Sandbox Code Playgroud)

祝好运.

  • 完成覆盖是个好主意.IE:在closeEvent()中调用QMainWindow :: closeEvent(event); 在功能的最后.请参阅saveState()函数文档中的示例:http://doc.qt.io/qt-4.8/qmainwindow.html (2认同)