加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 当我想退出应用程序时,如何在qt中自动调用析构函数?

发布时间:2020-12-16 10:05:37 所属栏目:百科 来源:网络整理
导读:我使用CAMA系列(指纹模块)进行应用.在该文档中,它表示建议在退出应用程序之前使用EnrollStandByMode命令.我创建了这个命令,并在我的应用程序中的QMainWindow上的析构函数中调用它. (这里没有问题).但是当我退出应用程序并再次运行它时,我的指纹会混淆并且响
我使用CAMA系列(指纹模块)进行应用.在该文档中,它表示建议在退出应用程序之前使用EnrollStandByMode命令.我创建了这个命令,并在我的应用程序中的QMainWindow上的析构函数中调用它. (这里没有问题).但是当我退出应用程序并再次运行它时,我的指纹会混淆并且响应命令不正确.在跟踪我的代码之后,我看到当应用程序以关闭按钮关闭时,析构函数不会运行.

这是我退出qapp的代码.

void MainWindow::on_pushButton_clicked()
{
    qDebug()?"QApplication::quit()";
    QApplication::quit();
}

我想知道在退出应用程序之前如何调用析构函数?

解决方法

有几种方法可以在应用程序结束时调用某些东西.

如果您的代码不需要运行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()信号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读