Qt5:如何使用QProcess批处理

时间:2019-01-25 11:22:50

标签: c++ c++11 qt5 qprocess

我想让QProcess一次运行多个命令,而不是一次运行。

void Route::add_route()
{
    QProcess *Add_route = new QProcess(this);
    Add_route->start("notepad",QStringList() << "interface" << "ipv4" << "set" << "interface" << "" << "metric=1");
    Add_route->start("explorer",QStringList() << "interface" << "ipv6" << "set" << "interface" << "" << "metric=1");
    Add_route->waitForFinished();
}

使用此功能,它将仅运行第一个。
附:我正在使用记事本和资源管理器进行测试
谢谢!

2 个答案:

答案 0 :(得分:2)

QProcess具有成员函数startDetached()。对于需要启动的每个进程,请使用一个QProcess,而对于所有进程,请不要使用一个QProcess。参见http://doc.qt.io/qt-5/qprocess.html#startDetached

答案 1 :(得分:0)

QProcess顾名思义代表单个进程而不是多个进程。 因此,您设计使用单个QProcess对象运行两个进程的要求在设计上是错误的。

您有两种选择: