获取qt应用程序输出到Qwidget c ++

时间:2017-05-02 22:27:24

标签: c++ qt qt5

我构建了一个通过C ++ Qt GUI执行linux命令的应用程序 我从文件中读取并正常显示输出 但有时文件的输出是data ="" 并且 - 在终端中正常显示的输出 - 显示在应用程序输出中 所以 我想获得Qwidget的应用程序输出,例如QTextEdit


cat :: / home / user / Desktop:是广告目录, 我用它的功能是

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 个答案:

答案 0 :(得分: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);