zoukankan      html  css  js  c++  java
  • 用QT编写的程序,怎样在申请资源失败后,关闭所有窗口,退出程序?

    用QT编写的程序,怎样在申请资源失败后,关闭所有窗口,退出程序?

    我写的一个QT窗口,以一个对话框为主窗口,在对话框的初始化函数(对话框类的构造函数)中回申请一些资源,现在我想在申请失败后关闭所以窗口,结束程序。
    主程序如下:
    QApplication a;
    MyDlg myDlg( this, “MainWindows” );
    a.setMainWidget( &myDlg );
    myDlg.show;
    return a.exec();

    我设想几种方法 :1)在申请资源失败后,调用qApp->closeAllWindows() 。2)在申请资源失败后,调用qApp->quit()。 3)在申请资源失败后,调用exit(-1)结束程序。
    可是前两种方法不能实现我的要求,在MyDlg的构造函数中调用qApp->closeAllWindows()或qApp->quit(),并不能结束程序,它仍然会运行到 最后一句:return a.exec(), 而且不会关闭myDlg对话框。只有exit(-1)才实现了关闭窗口并且结束程序。
    请问在QT程序中,怎样在申请资源失败后,关闭所有窗口,退出程序?(除了exit(-1)之外的方法)




    Re: 用QT编写的程序,怎样在申请资源失败后,关闭所有窗口,退出程序?

    别的不说,在构造函数里面进行复杂的处理,甚至退出程序做法,我觉得是不合理的。
    其实给MyDlg类增加一个init()的函数,返回一个int,在这个函数里面做复杂操作,
    申请资源,然后通过检查返回值来决定是否进行下一步操作,这样更加合理一些。
    另外,在a.exec()函数未调用之前,整个事件循环都未开始,closeAllWindows()以及quit()等消息也就无从处理。



  • 相关阅读:
    Sqlserver @@IDENTITY 和 SCOPE_IDENTITY() 的使用
    Sqlserver 其它操作
    将 .net core 通过容器docker 部署到 linux 记录
    Unity中使用ProtocolBuffer
    Android笔记基于https://www.bilibili.com/video/BV1Bf4y1D7Gq?p=1
    简单登陆界面的应用
    springboot 梳理7--整合redis(待完善)
    4.工厂方式建立
    5,db的解决方法,日志集成
    10.3右上角后台逻辑处理,前台处理
  • 原文地址:https://www.cnblogs.com/mokliu/p/2138864.html
Copyright © 2011-2022 走看看