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