【发布时间】:2021-06-18 15:17:05
【问题描述】:
我正在考虑使用 QProcess 多次调用命令行应用程序 (gpio)。每次用户点击一个按钮就会发出一个命令。
并且应用程序输出将被监控并重定向到屏幕。代码如下所示。
void Gpio::command(QString argument)
{
// if(process)
// delete process;
process = new QProcess(this);
connect(process, SIGNAL(started()), this, SLOT(onStart()));
connect(process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(onFinish(int,QProcess::ExitStatus)));
connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(readGpio()));
QString program("gpio");
QStringList list = argument.split(" ");
process->start(program, list);
}
问题:我应该delete process吗?这样做我得到了:
QProcess: Destroyed while process is still running.
监控exitCode 和exitStatus 我看到他们总是0。
这个问题更多地关注QProcess的正确使用,而"QProcess and shell : Destroyed while process is still running"关注具体错误。
【问题讨论】:
-
您是否需要运行多个进程,即是否允许用户多次单击该按钮?或者,一个进程但每次都有不同的参数?
-
每次都有不同的参数。