我将CAMA系列(指纹模块)用于我的应用程序。在该文档中,它表示建议在退出应用程序之前使用EnrollStandByMode
命令。我创建了这个命令,并在我的应用程序中的QMainWindow上的析构函数中调用它。 (这里没有问题)。但是当我退出应用程序并再次运行它时,我的指纹会混淆并且响应命令不正确。在跟踪我的代码之后,我看到当应用程序以关闭按钮关闭时,析构函数不会运行。
这是我退出qapp的代码。
void MainWindow::on_pushButton_clicked()
{
qDebug()«"QApplication::quit()";
QApplication::quit();
}
我想知道在退出应用程序之前如何调用析构函数?
答案 0 :(得分:7)
有几种方法可以在应用程序结束时调用某些内容。
如果您的代码不需要运行Qt事件循环,只需在main()
int main(int argc, char **argv)
{
QApplication app(argc, argv); // or QGuiApplication/QCoreApplication
// application setup
const int resultCode = app.exec();
// call your shutdown code here
return resultCode;
}
另一种选择是注册一个由qAddPostRoutine()
注册的函数,该函数由Qt应用程序对象的析构函数调用。
如果需要Qt事件循环,请将函数连接到Qt应用程序对象的aboutToQuit()
信号。