Qt 中程序自动重启
参照至 dbzhang老师的博文,记录于此.......
要想理解重启,先得看看Qt程序怎么退出!
1、退出
- int main(int argc, char** argv)
- {
- QApplication a(argc, argv);
- Widget w;
- w.show()
- return a.exec();
- }
最后一句启动了主线程的事件循环。而要退出程序,就是要退出这个事件循环,使main函数返回。
如何退出?
正确方式:
- QCoreApplication::exit(int);
它还有一个马甲
- QCoreApplication::quit();
对于QApplication来说,它有一个常用的属性:quitOnLastWindowClosed
所以,当最后一个窗口关闭时,它可以自动调用前面的exit(),而至于关闭窗口呢,我们还可以使用
- //一般来说,对于多个窗口的程序,调用这个会比直接调用quit要好。因为这样窗口可以接受到Close事件。
- QApplication::closeAllWindows();
2、启动外部程序
在Qt中,做这个工作的非QProcess莫属了,要启动当前程序的另一个进程,有要使二者没有"父子"关系。
- QProcess::startDetached(qApp->applicationFilePath(), QStringList());
下面这行代码也可以,如果路径中不包含空格,这个也可以工作
- QProcess::startDetached(qApp->applicationFilePath());
3、重启
有了上面的分析,下面的代码就简单,好理解了
- void XXX::onXXX()
- {
- qApp->quit();
- QProcess::startDetached(qApp->applicationFilePath(), QStringList());
- }
http://blog.csdn.net/ac_huang/article/details/37995315
Qt 中程序自动重启的更多相关文章
- C# 程序自动重启的解决方法
很多时候,我们有这样的场景,需要让程序自动重启,有很多种方法,比如用微软自带提供的方法,或者自己开辟新的线程重新调用.下面简单介绍两种方法. 方法一. 使用方法Application.Restart( ...
- 解决Android后台清理APP后,程序自动重启的问题
最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启.现象很奇怪,有的手机(HTC)后台清理后,程序会再次重启,而有的手机(小米)则不会.猜想可能是小米手机内部做了处理, ...
- Qt 程序自动重启的实现
正常退出调用exit() 或quit()就行,想要自已重启可按下面代码: void XXX:onRestart() { //类中调用 qApp->exit(); } 主main函数中处理 int ...
- Qt系统对话框中文化及应用程序实现重启及使用QSS样式表文件及使用程序启动界面
一.应用程序中文化 1).Qt安装目录下有一个目录translations/,在此目录下有qt_zh_CN.ts和 qt_zh_CN.qm把它们拷贝到你的工程目录下. 2).在main函数加入下列代码 ...
- windows中实现python,redis服务自动重启(任务计划程序+bat脚本)
需求:银行电脑无法自动开机,只能 通过 应用相关服务每天自动重启的方式实现 服务更新并且防止服务假死,内存过大 等情况 相关工具:win10系统中,使用windows自带的任务计划程序 和 bat脚本 ...
- qt 自动重启(两种方法)
所谓自动重启就是程序自动关闭后在重新打开: 一般一个qt程序main函数如下: int main(int argc, char* argv[]) { QApplication app(argc, ar ...
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用提高nodejs调试效率
在开发或调试Node.js应用程序的时候,当你修改js文件后,总是要按下CTRL+C终止程序,然后再重新启动,即使是修改一点小小的参数,也 总是要不断地重复这几个很烦人的操作.这是因为Node.js ...
- QT中关闭应用程序和窗口的函数(quit(),exit()以及close()的区别)
使用QT编辑界面,其中带来很大方便的一点就是Qt中自带丰富的.种类齐全的类及其功能函数,程序员可以在编辑程序的过程中简单地直接调用.关于窗口关闭的操作,在这里指出常用的三个槽,即quit(),exit ...
- linux下通过脚本实现自动重启程序的方法
无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...
随机推荐
- UVA 816 Abbott’s Revenge
bfs求最短路,递归打印最短路的具体路径: 难点: 当前状态和转弯方式很复杂,要仔细处理: 递归打印:用一个数组存储路径中结点的前一个节点,递归查找 (bfs无法确定下一个结点,但对于没一个结点,它的 ...
- MFC 遍历FTP服务器目录相关
CInternetSession* pSession; pSession = new CInternetSession; //构造新的连接 CFtpConnection* pFtpCon; pFtp ...
- Android Studido下的应用性能优化总结--布局优化
前言:一个应用的成功=产品设计*性能 ,再此我们不讨论一个应用的设计,那交给我们可爱又可恨的产品经理和UI设计师来决定!所以这里分步骤讨论如何提升一个应用的性能,这里先探讨布局优化问题. 布局优化 避 ...
- JVM虚拟机选项:Xms Xmx PermSize MaxPermSize区别(转)
java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制.否则可能导致应用程序宕掉. 举例说明含义:-Xms128m表示JVM Heap(堆内存)最小尺寸128MB,初 ...
- Make a travel blog by Blogabond the theme of wordpress
We can record our place which we have ever went.If you want to know any more you can visit :http://w ...
- Java报表开发组件DynamicReports
DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而无需可视化报表设计工具. From : http://www.oschina ...
- word2vec 入门(二)使用教程篇
word2vec 要解决问题: 在神经网络中学习将word映射成连续(高维)向量,这样通过训练,就可以把对文本内容的处理简化为K维向量空间中向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度 ...
- Ubuntu 查找命令
Ubuntu 查找文件夹 使用find命令查找find / -name 文件夹名称 -type d找到结果中含有路径 查找命令 从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR” ...
- Mac 安装Qt5.1编译出现的错误解决
错误提示: :-1: 错误:Xcode is not installed in /Volumes/Xcode/Xcode.app/Contents/Developer. Please use xcod ...
- 爱加密亮相第十八届软博会,移动App安全引关注
2014年5月29日至31日,2014年第十八届中国国际软件博览会在北京展览馆举行,此次软博会的主题为"软件引领信息消费,助力经济转型升级",充分展示软件业在促进信息消费.提升社会 ...