QT5入门之19 -QT调用外部程序

很简单,用qprocess即可。

#include <qprocess>
void MainWindow::on_pushButton_5_clicked()
{
    QProcess process;
   // process.execute("notepad d:\qt.h");//calc,regedit...
    process.execute("d:\\feiq.exe");//执行d盘下feiq.exe文件。
}
process.execute("calc");//打开计算器
process.execute("regedit");//打开注册表
process.execute("notepad");//打开记事本
process.execute("notepad d:\1.txt");//用记事本打开d盘下1.txt文件

但是这种方式会导致主线程阻塞。
另外一种方式是另外开个线程启动外部程序。
1. 新建C++ class。
MyThread.h

#include <QThread>
#ifndef MYTHREAD_H
#define MYTHREAD_H


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

#endif // MYTHREAD_H

MyThread.cpp

#include "mythread.h"
#include <qprocess>
MyThread::MyThread()
{

}

MyThread::~MyThread()
{

}

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

2.在主窗体中定义成员变量并调用start启动。

#include "mythread.h"
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:

MyThread thread;
。。。。
};
void MainWindow::on_pushButton_5_clicked()
{
       thread.start();
}

也许会出现无法解析的外部符号 “public: __thiscall MyThread:错误,手动删除debug目录,重新编译即可。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值