• 6160阅读
  • 2回复

启动外部程序QProcess::execute()的问题? [复制链接]

上一主题 下一主题
离线wmquan
 
只看楼主 正序阅读 楼主  发表于: 2007-05-16
— 本帖被 XChinux 执行加亮操作(2008-07-19) —
系统SUSE Linux10.2, QT4
在置顶的帖子中有这方面的代码
  1. class MyThread : public QThread
  2. {
  3. public:
  4.     void run();
  5. };
  6. void MyThread::run()
  7. {
  8.     QProcess::execute("AnotherQtP");
  9. }
  10. class MainWidow : public QMainWindow
  11. {
  12.   pbulic:
  13.       MyThread thread;
  14.       ............
  15. };
  16. class MainWidow::anotherqtpButtonClicked()
  17. {
  18.       thread.start();
  19. }

点击触发按钮后,能够打开AnotherQtP程序。但关掉打开的AnotherQtP程序后,再点击按钮就打不开了,而且该线程显示一直处于running状态。该怎么解决,有没有更多关于QProcess::execute()函数的相关资料?
离线wmquan
只看该作者 2楼 发表于: 2007-05-17
不错,多谢。还是new一个为好。
离线htyoung

只看该作者 1楼 发表于: 2007-05-16
我的分析:
你的AnotherQtP 是被“MyThread thread ”启动的,但是当你关掉AnotherQtP 时,thread也许并没有被kill掉,因为 thread 是MainWidow的一个成员,所以在你第二次调用这个thead时应该先检查一下 thread的状态,如果是运行的 那就先stop掉,再重启thread. 最简单的方法是每次new 一个新的。
***
QT5
***
快速回复
限100 字节
 
上一个 下一个