【发布时间】:2014-07-21 11:33:06
【问题描述】:
据我了解,以下将执行一个应用程序,该应用程序将在所有相关窗口关闭时退出。
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 设备。如果进程运行正常,我可以轻松关闭此连接,但如果有人决定在完成之前点击退出或关闭所有窗口,我希望安全关闭连接。
【问题讨论】:
-
您可以从 QApplication 继承,并在析构函数中进行清理。否则,连接到 QCoreApplication::aboutToQuit 信号。
-
我想过添加一个
aboutToQuit,但认为如果有人只是关闭窗口而不是点击退出按钮,这将行不通。
标签: c++ qt dll usb qt-creator