1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| void EmWindow::openConfig()
{
QProcess *config = new QProcess(this);
QString programmPath = QStandardPaths::locate(QStandardPaths::AppDataLocation, "", QStandardPaths::LocateDirectory);
programmPath +="emConf.exe";
//Conversion du chemin dans le format de la plateforme courante
programmPath = QDir::toNativeSeparators(programmPath);
logMessage(QString("[openconfig()] programmPath set to : %1").arg(programmPath));
connect(config, SIGNAL(started(QProcess::ProcessState)), this, SLOT(EmWindow::onProcessStarted(QProcess::ProcessState)));
connect(config, SIGNAL(errorOccurred(QProcess::ProcessError)) , this, SLOT(onErrorOccurred(QProcess::ProcessError)));
connect(config, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(onFinished(int,QProcess::ExitStatus)));
config->start(programmPath);
}
void EmWindow::onProcessStarted(QProcess::ProcessState state)
{
logMessage(QString("[onProcessStarted()] - Etat %1").arg(state));
}
void EmWindow::onErrorOccurred(QProcess::ProcessError error)
{
logMessage(QString("[onErrorOccurred()] Error : %1").arg(error));
}
void EmWindow::onFinished(int exitCode, QProcess::ExitStatus exitStatus)
{
logMessage(QString("[onFinished()] Exit code: %1 Exit status: %2").arg(exitCode).arg(exitStatus));
QProcess *p = qobject_cast<QProcess*>(sender());
if(p)
p->deleteLater(); //Une autre façon de s'assurer que la mémoire sera libérée.
} |
Partager