QProcess不会在不同的PC上终止

时间:2014-11-14 22:01:33

标签: c++ qt

我对QProcess有一个奇怪的问题。我在Ubuntu 12.04.5 LTS上运行Qt 4.8.1(在基于HP工作站Xeon的PC上)。以下位代码在PC1上正确执行和终止(过程大约需要20秒才能完成)。我将代码转到PC2,也在Ubuntu 12.04.5 LTS(OSX Mavericks上的VMWare)上运行Qt 4.8.1,并且永远不会发出完成的(int)信号(qDebug打印等待永远,并且看起来比on更快正确工作的PC)。任何人都知道问题可能是什么? run()函数通过QPushButton信号调用,并且所有插槽都在PC1上正确执行,但从不在PC2上执行。

void VaredWindow::run()
{
    //! update the GUI to let the user know we're running now
    txtOutput->clear();
    txtStatus->setText(QString("Running ") + appSelect->currentText() + QString("..."));
    txtStatus->repaint();
    txtOutput->repaint();
    qApp->processEvents();

    //! create and start up the app process
    proc = new QProcess(this);
    int appNum = appSelect->currentIndex();
    QString app = getAppName(appNum);
    QStringList args = getAppArgs(appNum);

    connect(proc, SIGNAL(readyReadStandardOutput()), this, SLOT(readStdout()));
    connect(proc, SIGNAL(readyReadStandardError()), this, SLOT(readStderror()));
    connect(proc, SIGNAL(finished(int)), this, SLOT(procFinished()));

    QApplication::setOverrideCursor(Qt::WaitCursor); // make a spinny thingy
    proc->setWorkingDirectory(QApplication::applicationDirPath());
    proc->start(app, args);

    while (!proc->waitForFinished(500))
    {
        qDebug() << "Waiting";
    }
}

另外值得注意的是,它在两台机器上运行正常,两台机器上的奇怪行为如下:

  • PC1(工作),Xeon Workstation w / Ubuntu 12.04.5 LTS
  • PC2(无效),Macbook Pro VMWare w / Ubuntu 12.04.5 LTS
  • PC3(正常),Macbook Pro VMWare w / Ubuntu 14.04.1 LTS
  • PC4(无效),Macbook Pro VMWare w / Ubuntu 12.04.5 LTS

0 个答案:

没有答案