在Qt中调用第三方程序通常使用QProcess进行调用,以下描述QProcess常用的接口。
1. QProcess::startDetached
QProcess::startDetached(const QString & program,const QStringList & arguments,const QString &workingDirectory = QString() )
该接口在Qt5.8之前可以调用含有控制台界面的GUI程序(控制台随GUI界面启动一同启动),通过调用cmd.exe来调用含控制台的程序。代码如下:
void test::callExe(QString strCallExePath)
{
QProcess process;
process.startDetached("cmd.exe",QStringList()<<"/c"<<strCallExePath);
}
2. QProcess::start
QProcess::start(const QString& program,const QStringList & arguments,OpenMode mode = ReadWrite)
该接口可直接调用被调用的程序路径启动该程序,若该程序为含有控制台的GUI程序,控制台程序无法进行显示。
void test::callExe(QString strCallExePath)
{
QProcess process;
process.start(stacallExePath,QStringList(""));//若未带参数,可能在打包安装程序时导致无法调用成功
}