使用QProcess可以调用其他现成exe,类似采用命令行参数的方式 。
2023-5-16
例如:
#include <QApplication>
#include <QProcessEnvironment>
#include <QDir>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置QT环境变量的插件路径
QString pluginPath = QDir::currentPath() + "/plugins";
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("QT_PLUGIN_PATH", pluginPath);
QProcess::setProcessEnvironment(env);
// 设置QProcess的当前工作目录为当前程序的运行目录
QProcess process;
process.setWorkingDirectory(QCoreApplication::applicationDirPath());
// 其他操作...
return app.exec();
}
其他操作比如:
#include <QApplication>
#include <QProcess>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建进程对象
QProcess process;
// 设置进程运行的程序路径和参数
QString program = "external_program.exe";
QStringList arguments;
arguments << "arg1" << "arg2" << "arg3";
// 启动进程
process.start(program, arguments);
if (!process.waitForStarted()) {
qDebug() << "Error starting process" << program;
return 1;
}
// 等待进程结束
if (!process.waitForFinished()) {
qDebug() << "Error waiting for process" << program;
return 1;
}
// 获取进程的标准输出和标准错误输出
QString standardOutput = process.readAllStandardOutput();
QString standardError = process.readAllStandardError();
qDebug() << "Standard Output:" << standardOutput;
qDebug() << "Standard Error:" << standardError;
return 0;
}