【发布时间】:2013-10-16 17:30:13
【问题描述】:
我在 Qt 中使用 system() 命令。我想获得输出并将其展示给用户。 我的命令是:
system("echo '" + rootPass.toAscii() + "' | su - root -c 'yum -y install " + packageName.toAscii() + "'");
当我在 QProcess 中使用此命令时无法运行(启动或执行函数)
但如果我可以在 QProcess 中运行此命令,我可以使用QProcess::readAllStandardOutput() 函数获得输出。
当我在系统命令中使用“>”将输出保存在文件中时,我会在包完全安装后收到输出。像下面这样:
system("echo '" + rootPass.toAscii() + "' | su - root -c 'yum -y install " + packageName.toAscii() + "' > result.out");
是否有关于使用 QProcess 运行此命令的任何想法,或者在编写每一行后立即从 system() 命令获取输出。
【问题讨论】:
-
我会改用 QProcess。它会在输出可用时向您发出信号,让您轻松获得标准输出和标准错误。