Если вы хотите узнать, была ли у вас ошибка или процесс завершен, просто создайте два сигнала, а не один, и два слота, а не один.
В документации Qt у вас есть пример с подключением для обработки результата:
connect(workerThread, &WorkerThread::resultReady, this, &MyObject::handleResults);
вы здесь соединяете сигнал resultReady
с любым методом, который обрабатывает результат. Вы создаете еще один точно такой же, но с сигналом ошибки и обработчиком ошибок.
connect(workerThread, &WorkerThread::errorThrown, this, &MyObject::handleErrors);
Конечно, другой вариант - просто передать параметр с вашими сигналами / слотами. Это вызов функции, и если вы добавите enum
с этим значением для статуса или int
, это подойдет.