Как запустить командную строку с QProcess? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть приложение (X) Medcon, я хочу запустить командную строку (конвертировать файл) с QProcess .Я пытался, но это не успех.Это мой код

   convertDicomProcess = new QProcess(this);
   QString program = "C:\\Program Files\\XMedCon\\bin\\xmedcon.exe";
   QStringList arguments;
   arguments << "medcon"<< "-f" << "F:/33.nii" << "-c" << "dicom" << "-o" << "F:/33.dcm";

   convertDicomProcess->start(program, arguments);
   convertDicomProcess->waitForFinished();
   QByteArray output = convertDicomProcess->readAll();
   convertDicomProcess->close();

Когда я запускаю командную строку с

medcon -f E: \ 55.nii -c dicom -o E: \ 55.dcm

Успешное преобразование

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Попробуйте:

QStringList arguments;
arguments << "/c" << program << "-f" << "F:/33.nii" << "-c" << "dicom" << "-o" << "F:/33.dcm";

convertDicomProcess->start("cmd.exe", arguments);

Проверьте, действительно ли вам снова нужен "medcon" в качестве аргумента, я не знаю, так как я не знаю программу "medcon".Если да, измените его на:

arguments << "/c" << program << "medcon" << "-f" << "F:/33.nii" << "-c" << "dicom" << "-o" << "F:/33.dcm";

Этот код пытается запустить программу medcon в оболочке.

0 голосов
/ 30 ноября 2018

Если ваш путь существует, я думаю, вам нужно использовать кавычки (\ ") в строке:

QString program = "\"C:\\Program Files\\XMedCon\\bin\\xmedcon.exe\"";
...
...