Linux QT-QProcess输出cout
我正在尝试运行这个命令,并将输出存储在QString中,并使用cout显示它,但是它不起作用Linux QT-QProcess输出cout,linux,qt,Linux,Qt,我正在尝试运行这个命令,并将输出存储在QString中,并使用cout显示它,但是它不起作用 QString str_command1; str_command1 = "netstat -i"; proc1 = new QProcess(); proc1->start(str_command1); QString tx; tx = proc1->readAllStandardOutput(); std::cout << tx.toStdSt
QString str_command1;
str_command1 = "netstat -i";
proc1 = new QProcess();
proc1->start(str_command1);
QString tx;
tx = proc1->readAllStandardOutput();
std::cout << tx.toStdString() << std::endl;
QString str_command1;
str_command1=“netstat-i”;
proc1=新的QProcess();
proc1->start(str_command1);
QString-tx;
tx=proc1->readAllStandardOutput();
std::cout您应该读取标准输出,直到进程有效终止。尝试以下方法:
if (proc1.waitForStarted(-1)) {
while(proc1.waitForReadyRead(-1)) {
tx += proc1.readAllStandardOutput();
}
}
当你有信号时为什么忙着等待readyReadStandardOutput()
@UmNyobe:它是重复的,但我也更喜欢显示简单的示例,而忙着等待更容易说明问题:不等待流程完成。如果进程因某种原因挂起,则没有超时是一个问题。如果在同一函数下生成并检查输出,如何捕获信号?@LeonardoBernardini:了解更多有关Qt信号和插槽的信息,尤其是lambdas。只要堆上有对象,就可以使用lambdas和signals,如果你想把它放在堆栈上,并按照用户的要求把所有事情都放在同一块中,我真的无法找到一种方法来处理你的建议,除非你强制执行一个事件循环。。。如果有这样的路,请把灯给我看!没有看到原来的帖子,所以。不要在“向下投票”按钮上发疯。@UmNyobe:人们需要意识到,不要回答常见问题,只需投票关闭或标记它。否则,人们会回答一些琐碎的问题,并多次回答有关声誉的问题,或者至少他们不知道复制处理系统(如果不是代表的话)。金徽章持有人可以尽快关闭它,但遗憾的是,我们的qt标签中没有任何内容;-)好吧,让我拿我的qt金徽章;)如果由我决定,我会给你一个。:)