Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux QT-QProcess输出cout_Linux_Qt - Fatal编程技术网

Linux QT-QProcess输出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中,并使用cout显示它,但是它不起作用

  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金徽章;)如果由我决定,我会给你一个。:)