Добрый день.
Требуется запустить 3и сторонних паралелльно работающих процесса и закрывать их по надобнсти. Процессы работают бесконечно, пока не получат Ctrl+C (если запущены из терминала) или соответсвенно "kill".
Почему-то просто в слоте:
C++ (Qt)
screenCaprtureParameters << ...;
captureScreenProcess.start("/.../avconv", screenCaprtureParameters);
выдает captureScreenProcess.state() = 1, captureScreenProcess.errorString() "Unknown error" и ничего не происходит.
Если делать через execute или startDeatached, все работает. Но execute вешает GUI (т.к. процесс бесконечный), а если startDeateched, нужно управлять через полученный PID.
Добавил новый поток и сделал в слоте вот так:
C++ (Qt)
captureScreenThread = new QThread(this);
captureScreenProcess.moveToThread(captureScreenThread);
screenCaprtureParameters << ...;
captureScreenProcess.start(".../avconv", screenCaprtureParameters);
captureScreenThread->start();
и по прежнему происходит ровно тоже самое что и раньше.
PS: Вопрос - если делать отдельный класс унаследованный от QThread, который должен запускать этот процесс и крутить его, то при перегрузке run нужно в теле метода тоже писать start()?