繁体   English   中英

如何使用QProcess运行命令行?

[英]How to run command line with 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

这是成功的转换

如果路径存在,我认为您需要在字符串中使用引号(\\“):

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

尝试:

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程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM