关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法

Posted 长沙红胖子Qt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法相关的知识,希望对你有一定的参考价值。

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/126521126

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

Qt开发专栏:各种问题解决(点击传送门)

国产麒麟系统相关开发


问题

  Qt强制退出应用可使用下图的两个方法(习惯用此方法),但是在本麒麟系统上开发时,强制退出无效。

  
  本段代码位置是在刚启动系统时,主界面类构造函数中。


原因

  推测理解为本个版本系统的bug,不知道其他系统是否有这个问题。
  附上系统版本;
  
  经过后续,有大佬提醒,才发现在消息循环进入前,使用该函数时退出无效,其本身是退出消息循环,主界面构造函数还未进入,所以是无效的。


解决方法

  如果不在主界面等其他弹窗强制退出可能代码上去操作退出就麻烦点了,本次是在主页面类的构造函数中,所以换成了系统的exit()为退出主程序。
  
  退出方式总结种(不算旁门左道:如直接拿到进程,给系统发消息干掉进程,直接写个段错误让他崩溃):

  • 第一种:全隐藏方式。 可以使所有界面都隐藏,自然退出,这个属性是Qt界面程序默认的,如果想完全隐藏(如任务栏右小角仅有个任务栏标识)又不退出,可以在main函数种设置属性:
a.setQuitOnLastWindowClosed(false);
  • 第二种:Qt强制退出方式(主要为退出消息循环:在没有a.exec()消息循环之前调用无效)。 可以使用qApp->exit(),QApplication::exit(),QCoreApplication::exit()。
  • 第三种:系统强制退出方式。 可以直接使用exit(),这是c语言系统函数。

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/126521126

以上是关于关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法

关于 国产麒麟系统上长时间运行Qt程序根目录/下磁盘空间占用100%导致无法写入 的解决方法

关于 国产麒麟系统上长时间运行Qt程序根目录/下磁盘空间占用100%导致无法写入 的解决方法

关于 国产麒麟系统上长时间运行Qt程序根目录/下磁盘空间占用100%导致无法写入 的解决方法

关于Qt国产化系统开发的几点总结

关于 国产麒麟系统上长时间运行Qt程序.xsession-erros文件占满磁盘导致无法写入 的解决方法