system("calc.exe")
2、通过碧梁QProcess 阻塞调用
QProcess::execute("calc.exe")/QProcess::startDetached("calc.exe")
3、通过QProcess,非阻塞调用
QProcess *pro = new QProcess
pro->start("calc.exe")
注释:
1、前两种方法会阻塞进程,直到计算器程序结束,而第三种方法则不会阻塞进程,可以多任务运行。
2、QT在运行的时候,要启动qws服务尺虚,如果用前两种方法,运行的时候,要新开启一个qws,否则不能运行;而第三种方法,则不需要在开启qws,他和主进程公用一个qws。
3、第三种虽然不会阻塞,但是有可能在终端上看不到打印出来的信息。所以要在终端显示信息,可以考陵慧燃虑阻塞模式。
#include<Qprocess>
void MainWindow2::program() //打开外部程序
{
this->hide() /枯凯/隐藏型薯当前界面
QProcess::execute("……\\xx.exe") //外部没租唤程序所在路径
}
网上搜了下实现方案,原理很简单,就是通过获取外部窗口的id,转换为QWindow嵌入当前qt窗口氏宴唯。于是问题就变成了如何查看外部程序的窗口属性,推荐使用歼培spy++,小巧实用,放链接:
链接: https://pan.baidu.com/s/15cZuL1OPITdM1OwnTkBSww
提取码: diax以记事本程序为例,可以看到窗口标题为"无标题 - 记事本"祥薯,类型为Notepad。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)