• 13531阅读
  • 7回复

QT调用外部程序问题 [复制链接]

上一主题 下一主题
离线hustwsp
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-10
— 本帖被 XChinux 执行加亮操作(2010-10-21) —
新学习QT,目前在写一个小程序
基本功能:
在一个窗口中有3个按钮
1)点击按钮1,执行一个终端命令,并输出结果;
2)点击按钮2,打开一个网页;
3)点击按钮3,打开一个外部程序;

第一个功能已经解决,通过Process实现;
请教下第二个和第三个怎么实现啊;
看到有人说通过QProcess::execute实现,具体怎么用啊
离线hustwsp
只看该作者 1楼 发表于: 2009-11-10
再问个问题:
当QT调用了外部程序后如何在新窗口打开外部程序?
望知道的高手解答下
离线hustwsp
只看该作者 2楼 发表于: 2009-11-10
14、如何启动一个外部程序
答:1、使用QProcess::startDetached()方法,启动外部程序后立即返回;
2、使用QProcess::execute(),不过使用此方法时程序会最阻塞直到此方法执行的程序结束后返回,这时候可使用QProcess和QThread这两个类结合使用的方法来处理,以防止在主线程中调用而导致阻塞的情况
先从QThread继承一个类,重新实现run()函数:

Quote:
class MyThread : public QThread
{
public:
     void run();
};

void MyThread::run()
{
    QProcess::execute("notepad.exe");
}

这样,在使用的时候则可定义一个MyThread类型的成员变量,使用时调用其start()方法:

Quote:
class ...............
{...........
MyThread thread;
............
};

.....................
thread.start();


或者以这个写个最简单的具体例子,调用一个外部程序
离线lishiyong110
只看该作者 3楼 发表于: 2010-03-13
恩 标记下 改天研究下...
静下心来学习
离线shuminhua

只看该作者 4楼 发表于: 2010-03-15
初学Qt,看不明白是什么意思!我想请问一下,该调用的“外部程序”指的是什么意思?“ QProcess::execute("notepad.exe"); ”是指运行windows下的记事本吗?
QQ: 398827954
Email: shuminhua@126.com;shuminhua23@hotmail.com
http://www.pumpliu.com/bbs/userspace.asp?sid=4
离线sotired
只看该作者 5楼 发表于: 2010-09-30
楼上理解正确。
我对QT的目录结构树,一直有点糊涂,懂得来谈谈呀
离线XChinux

只看该作者 6楼 发表于: 2010-10-21
如果启动的外部程序,不需要与之交互,直接QProcess::startDetached()即可。

打开一个网页,是用默认浏览器打开吗?QDesktopServies::openUrl(QUrl("http://www.xxxx.com/ssss"));

启动一个程序,获取其输出结果,用 QProcess,获取其输出。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jetcai1900
只看该作者 7楼 发表于: 2011-04-11
怎么退出呀?
快速回复
限100 字节
 
上一个 下一个