据此,我在程序内部使用 system() ( QProcess ) 函数来调用 gpio 程序。
有用。但我注意到我需要运行我的应用程序两次,实际上它只在第二次运行。正如这里所指出的,对 gpio 的调用似乎必须在另一个进程中完成。
是否应该使用QProcess::setupChildProcess()来解决这个问题?
我扩展了 QProcess 覆盖 setupChildProcess ,然后在我的应用程序的构造函数中实例化了 SandboxProcess 。不幸的是,这没有奏效。
class SandboxProcess : public QProcess
{
protected:
void setupChildProcess();
};
void SandboxProcess::setupChildProcess()
{
QString program = "/usr/local/bin/gpio";
QStringList arguments;
arguments << "export" << QString::number(4) << "out";
start(program, arguments);
}