Important: Please read the Qt Code of Conduct -

Handling multiple process launches and updating progress via single function ?

  • I am learning Qt and use the following code to launch external application and process output received from it :


    void Dialog::on_startButton_clicked()

    QString program = "C:/Program Files/ffmpeg/bin/ffmpeg.exe";
    mTranscodingProcess = new QProcess(this);
    connect(mTranscodingProcess, SIGNAL(started()), this, SLOT(processStarted()));

    connect(mTranscodingProcess, SIGNAL(finished(int)), this, SLOT(encodingFinished()));

    QStringList arguments;
    QString input = "myfile_path_1";
    QString input2 = "myfile_path_2";
    arguments << "-y" << "-i" <&lt; input &lt;&lt; "-i" <&lt; input2 &lt;&lt; "-c" << "copy" << "output.avi" ;
    qDebug() << arguments;
    mTranscodingProcess->start(program, arguments);


    Now, I need to know :

    (a). How to launch additional jobs of the above and receive separate updates from each instance.
    (b). How to achieve a interface like one below (see repeated information panels with thumbnail title and progress) updating progress updates from individual threads launched in step a above.


  • Any little pointers will also help?

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Please allow 24 to 72 hours before bumping your own thread, not all forum users are living in the same timezone as you.

    As for your questions, have a look at QtConcurrent for the multiple job problem and Qt's MVC module for the widget part

    Happy coding !

Log in to reply