readAllStandardOutput没法打印出来,怎么做

问题遇到的现象和发生背景

在qt中使用qprocess的start打开visualboyadvance模拟器窗口去运行游戏,再用xwininfo查询模拟器窗口的Windows ID等其他信息,接着建立这个线程与槽函数outlog的连接,利用outlog函数去接受readAllStandardOutput并且在Application Output打印出来。
现在的问题是没办法将这个线程在终端的标准输出打印出来,也就是没办法打印出xwininfo查询模拟器窗口得到Windows ID等其他信息,请问该怎么解决

操作环境、软件版本等信息

操作环境:Ubuntu16.04
软件版本:qt5.5.1 visualboyadvance-m-2.1.1

尝试过的解决方法

在终端单独打开visualboyadvance模拟器窗口,然后再在qt中用qprocess的start运行xwininfo -name去查询WindowsID等信息是可以再槽函数接受到并且打印出来的,如图所示

img


img

代码
void Widget::on_pushButton_clicked()
{
    myprocess = new QProcess(this);
//    myprocess->start("visualboyadvance-m /home/game/game_files/013-03超级街头霸王2.gba");//开启游戏
//    if (!myprocess->waitForStarted())//检查进程是否成功启动
//    {
//       qDebug() << "Failed to start emulator process.";
//    }
//    myprocess->start("xwininfo", QStringList() << "-name" << "\"013-03超级街头霸王2 - VisualBoyAdvance-M 2.1.1\"");//获取模拟器窗口的WindowsID等其他信息
//    myprocess->start("xwininfo", QStringList() << " -name" << " \"013-03超级街头霸王2 - VisualBoyAdvance-M 2.1.1\"");
//    myprocess->start("ls /home");
    myprocess->start("xwininfo -name \"013-03超级街头霸王2 - VisualBoyAdvance-M 2.1.1\"");
    connect(myprocess, SIGNAL(readyReadStandardOutput()), this, SLOT(outlog()));//建立myprocess发出标准输出信号与槽函数outlog的连接

}

void Widget::outlog()
{
    //打印出标准输出的内容
    QString abc;
    abc=myprocess->readAllStandardOutput();
    qDebug()<<abc<<endl;
}

但在qt中用qprocess->start打开的模拟器窗口却不行,如图所示

img

代码

img

我想要达到的结果

用qprocess的start打开的模拟器可以在start的xwininfo中输出标准信息并打印出来

img

@ada;回答下我的问题

你怎么用同一个QProcess对象来start两个程序啊,你没看到下面输出提示你"QProcess::start: Process is already running"吗
第一个start以后没有停止运行的话第二个start不会启动的