Qt打开外部程序的三种方法(两种阻塞,一种不阻塞)
2015-08-12 05:23
489 查看
Qt打开外部程序
[cpp] view plaincopy
//1.通过调用系统函数
system("opt/myApp"); //这是linux下的,windows下可以用WinExec等函数
//2.通过QProcess,阻塞调用
QProcess::execute("/opt/myApp"); //绝对路径和相对路径都可以,windows下要带exe后缀,系统应用如记事本notepad可直接输入打开
//3.通过QProcess,非阻塞调用
QProcess *pro = new QProcess;
pro->start("/opt/myApp");
1. 前两种方法会阻塞进程,直到myApp程序结束,而第三种方法则不会阻塞进程,可以多任务运行。
2. QT在运行的时候,要启动qws服务,如果用前面两种方法,运行的时候,要新开启一个qws,否则不能运行;而用第三种方法,则不需要再开启qws,它和主进程共用一个qws。
3. 第三种方法虽然不会阻塞,但是有可能在终端上看不到打印出来的信息。所以要在终端显示信息时,可以考虑用阻塞模式。
4. 第三种方法可以加入启动参数,详见qt文档。
参考:/article/2241408.html
-----------------------------------------------------------------------------------
还有一篇:
http://blog.csdn.net/seanyxie/article/details/5799714
[cpp] view plaincopy
//1.通过调用系统函数
system("opt/myApp"); //这是linux下的,windows下可以用WinExec等函数
//2.通过QProcess,阻塞调用
QProcess::execute("/opt/myApp"); //绝对路径和相对路径都可以,windows下要带exe后缀,系统应用如记事本notepad可直接输入打开
//3.通过QProcess,非阻塞调用
QProcess *pro = new QProcess;
pro->start("/opt/myApp");
1. 前两种方法会阻塞进程,直到myApp程序结束,而第三种方法则不会阻塞进程,可以多任务运行。
2. QT在运行的时候,要启动qws服务,如果用前面两种方法,运行的时候,要新开启一个qws,否则不能运行;而用第三种方法,则不需要再开启qws,它和主进程共用一个qws。
3. 第三种方法虽然不会阻塞,但是有可能在终端上看不到打印出来的信息。所以要在终端显示信息时,可以考虑用阻塞模式。
4. 第三种方法可以加入启动参数,详见qt文档。
参考:/article/2241408.html
-----------------------------------------------------------------------------------
还有一篇:
http://blog.csdn.net/seanyxie/article/details/5799714
相关文章推荐
- 基于QT-widget的电子词典实现
- Qt5.5.0+VS2013+win64配置
- Qt浅谈之三十二二维码条形码解析
- qt 插件开发
- 基于qt和mplayer的影音播放器
- Qt 5.3 下OpenCV 2.4.11 开发(15)滤波函数
- QSqlTableModel和QTableView设置复选框
- QT显示图片
- Qt dxlib 调用与简单应用
- mousebutton和mousebuttons使用的区别
- 转载:pyqt线程间通过 信号/槽 通信
- Qt中int转换成QString
- Qt 5.3 下OpenCV 2.4.11 开发(14)开运算与闭运算
- Qt 5.3 下OpenCV 2.4.11 开发(13)腐蚀与膨胀
- qt dbus 的一入门文章
- QT中关线程的问题
- 【Qt OpenGL教程】24:扩展、剪裁和TGA图像文件的手动加载
- QTP录制delphi程序,可录制无法运行
- CodeBlocks配置Qt 环境(含:预编译头文件,Qt设计师)
- Qt 5.3 下OpenCV 2.4.11 开发(12)meanShift 简单算法介绍