据我了解,以下将执行一个应用程序,该应用程序将在所有相关窗口关闭时退出。
int main(int argc, char *argv[])
{
QApplication cal(argc, argv); //Application instance
MainWindow window; //Create window in the stack
window.show(); //Show the window
return cal.exec(); //Execute event loop
}
这也将退出所述应用程序。
quitButton = new QPushButton("Quit", this);
connect(quitButton, SIGNAL(clicked()), QApplication::instance(), SLOT(quit()));
我应该如何进行清理(关闭硬件连接和库等),以便我可以确保无论应用程序如何退出,也无论它在执行的什么时候退出,所有需要发生的事情都会发生?
我将在整个应用程序中打开一个库,并在大多数时间连接到 USB 设备。如果进程运行正常,我可以轻松关闭此连接,但如果有人决定在完成之前点击退出或关闭所有窗口,我希望安全地关闭连接。
最佳答案
QWidget 有一个名为 closeEvent
的虚函数(参见 Documentation ,它在调用 widgets close()
操作时调用。
或者,如果您不想拥有自己的 Base 小部件,您可以将自己挂接到信号 QApplication::lastWindowClosed
(参见 here)。它在应用程序的最后一个可见窗口关闭时发出。
关于c++ - 退出 Qt 应用程序后如何做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24864075/