很简单,用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目录,重新编译即可。