На QCoreApplication и QProcess - PullRequest
       13

На QCoreApplication и QProcess

0 голосов
/ 06 ноября 2008

Я нахожусь на пути написания приложения QCoreApplication, которое должно создавать внешний процесс через Qprocess.

Я только что заметил, что даже если waitForStarted() вызывается и состояние процесса Running до выполнения обработчика событий, внешний процесс не запускается до тех пор, пока метод exec() вызывается на QCoreApplication.

Тем не менее, возможно ли отложить выполнение подпрограммы до начала обработки события (в которой создается экземпляр QProcess), или единственный жизнеспособный способ - создать однократный QTimer?

1 Ответ

1 голос
/ 06 ноября 2008

После небольшого исследования выходит метод QCoreApplication :: processEvents () , который обрабатывает все ожидающие события для вызывающего потока. В следующем коде

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QProcess abc(....);
    abc.start(...);

    app.processEvents();

    //////////////////////////////////////////////////////
    // is the process really running ? //
    //////////////////////////////////////////////////////

    return  app.exec();
}

такой метод требуется для секции is-the-process-really-running, чтобы он мог найти и запустить abc процесс. В противном случае abc будет запущен, когда цикл обработки событий обрабатывает событие запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...