如何使用QProcess运行命令行?

时间:2018-11-30 08:02:00

标签: c++ qt qprocess

我有一个应用程序(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 :(得分: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程序。