我有一个应用程序(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
这是成功转换
答案 0 :(得分:0)
如果您的路径存在,我认为您需要在字符串中使用引号(\“):
QString program = "\"C:\\Program Files\\XMedCon\\bin\\xmedcon.exe\"";
...
答案 1 :(得分:0)
尝试:
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";
此代码尝试在shell中运行medcon程序。