我正在尝试在QProcess下在我的Raspberry Pi(Raspbian)中启动CEC命令。
如果我在我的shell中执行:
echo 'standby 0' | cec-client -s
它正在工作,但如果我把它放在Qprocess中:
QProcess *proc = new QProcess;
proc->start("echo",{"'standby 0' | cec-client -s"});
proc->waitForFinished();
它没有按预期执行。否则在我的Raspberry Pi中工作得很好。我做错了什么?
答案 0 :(得分:2)
问题是您不能使用QProcess运行系统命令,而只能运行单个进程。因此,解决方法是将您的命令作为参数传递给bash:
process.start("bash", QStringList() << "-c" << "echo 'standby 0' | cec-client -s");