2017-05-02 33 views
1

我建立通過C++ Qt的GUI 執行Linux命令的應用程序我從文件中讀取並顯示輸出常 但有時從文件輸出數據=「」 和輸出該 - 在終端正常顯示 - 顯示在應用程序的輸出 所以 我希望得到一個應用程序輸出到如的QTextEdit QWidget的獲取Qt應用程序輸出到QWidget的C++


貓::/home/user中/桌面:是廣告目錄, 功能我用它是

QString operation :: commands(std::string usercommand){ 
const char * convertor = userCommand.c_str(); 
string data; 
FILE *f =popen(convertor,"r"); 
char buffer [1024]; 
while (fgets(buffer,sizeof(buffer)-1,f)!=NULL){data=data+buffer;} 
pclose(f); 
QString returning = QString::fromStdString(data); return returning; } 
+1

我會用的'QProcess'而不是這個。 – drescherjm

回答

1

如果您在使用Qt工作,你應該使用QProcess中

QString operation::commands(QString program) 
{  
    QProcess process; 
    process.start(program); 
    while (process.waitForFinished()){ 
     ; 
    } 
    QString resp = QString::fromLocal8Bit(process.readAllStandardOutput()); 
    QString error = QString::fromLocal8Bit(process.readAllStandardError()); 
    return resp + error; 
} 

用途:

QString usercommand = "cat /home/user/Desktop"; 
commands(usercommand); 
+0

什麼是QString程序參數應該是什麼? –

+0

更新我的解決方案 – eyllanesc

+0

非常感謝^ _^ –

相關問題