PDA

View Full Version : [C++\QT] problema con QProcess


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

fdf86
03-11-2010, 15:00
Dimenticate tutto..funziona anche la seconda versione..perdonatemi..
Forse sbaglio a leggere la stringa dal file di testo..devo controllare meglio