How to do cleaning up on exit in Qt

前端 未结 2 2024
情深已故
情深已故 2021-02-02 10:17

I\'d like to do some house keeping stuff (like writing to a file etc) in a Qt app before the app exits. How can I get to this function (exit or whatever is called) in Qt?

2条回答
  •  忘了有多久
    2021-02-02 11:01

    You need to connect a slot with the clean up code to the QCoreApplication::aboutToQuit() signal.

    This allows you to delete QObjects with QObject::deleteLater() and the objects will be deleted as you have not yet left the main application event loop.

    If you are using a C library that requires a 'shutdown' call you can normally do that after the return from QCoreApplication::exec().

    Example for both techniques:

    int main(int,char**)
    {
      QApplication app;
      library_init();
      QWidget window;
      window.show();
      QObject::connect(&app, SIGNAL(aboutToQuit()), &window, SLOT(closing()));
      const int retval = app.exec();
      library_close();
      return retval;
    }
    

提交回复
热议问题