2014-06-20 42 views
-2

我试图运行这个命令并输出存储在QString的使用COUT显示它,但它不工作...QT另外,QProcess器输出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; 
+0

没有在SO上看到原始文章。不要在downvote按钮上疯狂。 – UmNyobe

+1

@UmNyobe:人们需要意识到不回答常见问题,只需投票结束或标记即可。否则,人们回答琐碎且多次回答问题的声誉,或者至少他们不知道重复处理系统,如果不是代表。黄金徽章持有人可以尽快关闭它,但我们没有任何qt标签,不幸的是;-) – lpapp

+0

好吧,让我得到我的qt金徽章;) – UmNyobe

回答

-1

你应该阅读的标准输出,直到进程有效终止。尝试类似:

if (proc1.waitForStarted(-1)) { 
    while(proc1.waitForReadyRead(-1)) { 
     tx += proc1.readAllStandardOutput(); 
    } 
} 
+0

为什么忙着等待,当你有信号'readyReadStandardOutput()' – UmNyobe

+0

@UmNyobe:它是重复的,但我也喜欢展示简单的例子,而忙碌的等待更简单地证明问题:不等待过程完成。尽管过程因某种原因挂起,但没有超时问题。 – lpapp

+0

如果您在同一功能下产卵并检查输出,您如何捕获信号? –