fdf86
03-11-2010, 14:51
Salve a tutti..
Come da titolo ho di nuovo un problemino con le librerie QT..
Ho bisogno di lanciare un eseguibile esterno dal mio codice.
Questo eseguibile si trova in una cartella differente dalla Working corrente..
Ho pensato di usare QProcess..il problema è che mi funziona solo se inserisco il path ed il nome del file da lanciare.
Se uso una QString non va..
Questo è la parte del codice funzionante
QStringList params << "-interactive";
QProcess myProcess;
connect (&myProcess,SIGNAL(error(QProcess::ProcessError)),this,SLOT(disperrorProcess(QProcess::ProcessError)));
QString oldPath = QDir::currentPath();
if(QDir::setCurrent( "C:/Users/fdf/Desktop/Hexapode_Modelica/car1_GUI/" ))
qDebug()<<"dir changed\n";
if(myProcess.startDetached("\"C:/Users/fdf/Desktop/Hexapode_Modelica/car1_GUI/mycar.car0\"",params))//myProcess->startDetached("\program", params))
qDebug()<<"FOUND\n";
else
qDebug()<<"NOT FOUND\n";
QDir::setCurrent( oldPath );
Sapete dirmi come devo costruire la QString perchè venga letta correttamente?
È forse un Bug della funzione?
se modifico il codice in questo modo:
...
modelPath="C:/Users/fdf/Desktop/Hexapode_Modelica/car1_GUI/";
if(QDir::setCurrent( modelPath ))
....
non riconosce il percorso e non mi cambia la Working Directory..
Grazie in advance,
Francesco
Come da titolo ho di nuovo un problemino con le librerie QT..
Ho bisogno di lanciare un eseguibile esterno dal mio codice.
Questo eseguibile si trova in una cartella differente dalla Working corrente..
Ho pensato di usare QProcess..il problema è che mi funziona solo se inserisco il path ed il nome del file da lanciare.
Se uso una QString non va..
Questo è la parte del codice funzionante
QStringList params << "-interactive";
QProcess myProcess;
connect (&myProcess,SIGNAL(error(QProcess::ProcessError)),this,SLOT(disperrorProcess(QProcess::ProcessError)));
QString oldPath = QDir::currentPath();
if(QDir::setCurrent( "C:/Users/fdf/Desktop/Hexapode_Modelica/car1_GUI/" ))
qDebug()<<"dir changed\n";
if(myProcess.startDetached("\"C:/Users/fdf/Desktop/Hexapode_Modelica/car1_GUI/mycar.car0\"",params))//myProcess->startDetached("\program", params))
qDebug()<<"FOUND\n";
else
qDebug()<<"NOT FOUND\n";
QDir::setCurrent( oldPath );
Sapete dirmi come devo costruire la QString perchè venga letta correttamente?
È forse un Bug della funzione?
se modifico il codice in questo modo:
...
modelPath="C:/Users/fdf/Desktop/Hexapode_Modelica/car1_GUI/";
if(QDir::setCurrent( modelPath ))
....
non riconosce il percorso e non mi cambia la Working Directory..
Grazie in advance,
Francesco