如何解决使用 QProcess 时无法读取命令的输出
我的程序需要发送一个带有 QProcess 的命令行并检索结果,然后将其显示在 GUI 中。
我要执行并读取其输出的命令是 ostree remote refs kinoite
这是我的代码:
QProcess* process = new QProcess();
connect(process,&QProcess::readyReadStandardError,[process]() {
qWarning()<<"Error: " << process->readAllStandardError();
});
//catch data output
connect(process,&QProcess::readyReadStandardOutput,[process]() {
qWarning()<<"Output: " << process->readAllStandardOutput();
});
// delete process instance when done,and get the exit status to handle errors.
QObject::connect(process,QOverload<int,QProcess::ExitStatus>::of(&QProcess::finished),[=](int exitCode,QProcess::ExitStatus exitStatus){
qWarning()<< "process exited with code " << exitCode;
process->deleteLater();
});
process->setWorkingDirectory(QStringLiteral("~"));
process->start(QStringLiteral("ostree"),{QStringLiteral("remote"),QStringLiteral("refs"),QStringLiteral("kinoite")});
未收到信号,因此使用 qWarning()
时终端上不显示任何内容
请任何帮助。
谢谢
解决方法
问题不在于 QProcess,而是因为在工具箱中运行 QProcess。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。