2014-06-20 56 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

如果您在同一功能下產卵並檢查輸出,您如何捕獲信號? –