Сгенерировал ошибку работы процесса - нет файла, сработал сигнал ошибки - нет файла код 0, а вот статус выхода говорит, что прошел нормальный выход. В чём беда? Важно, по сигналу emit finished(m_process->exitCode(), m_process->exitStatus(), this); хочу увидеть реальную работу процесса, а у меня получается, что всё прошло чудесно, только сигнал error(QProcess::ProcessError) выловил проблему, метод возврата строки ошибки не поможет - всегда возвращает - неизвестная ошибка (при любых условиях)
C++ (Qt)
void CProcessThread::run()
{
if(m_process == NULL)
m_process= new QProcess();
connect(m_process,SIGNAL(finished(int , QProcess::ExitStatus)), this, SLOT(finish()));
connect(m_process,SIGNAL(error(QProcess::ProcessError)), this, SLOT(errorFinish()));
qDebug()<<"//---------------------------//\n"<<QString("start %1 Thread").arg(m_appStr)<<m_listParam;
m_process->start(m_appStr, m_listParam);
exec();
}
void CProcessThread::setParams( const QString& appStr, const QStringList& listParams )
{
m_appStr = appStr;
m_listParam = listParams;
}
CProcessThread::CProcessThread( const QString& appStr, const QStringList& listParam )
{
setParams(appStr,listParam);
m_process = NULL;
}
CProcessThread::CProcessThread()
{
m_process =NULL;
}
CProcessThread::~CProcessThread()
{
qDebug()<<QString("delete %1 Thread").arg(m_appStr);
delete m_process;
m_process = NULL;
}
void CProcessThread::finish()
{
qDebug()<<QString("finish %1 Thread").arg(m_appStr)<<m_process->exitCode()<<m_process->exitStatus()<< m_process->errorString()<<m_process->error();
emit finished(m_process->exitCode(), m_process->exitStatus(), this);
}
void CProcessThread::errorFinish()
{
emit error(m_process->error(), m_process->errorString());
finish();
}