我正在尝试在Qt(Linux下)中执行一个进程,该进程执行一个Python脚本,但我无法使其工作。以下是代码:
QProcess process;
QString scriptFile = "../../scriptPath/script.py";
QString pyCommand = "\"python " + scriptFile +
" -f " + parameter1 +
" -t parameter2" +
" -v parameter3" +
" -e " + parameter4 + "\"";
printf("PyCommand: %s\n", qStringToStdString(pyCommand).c_str());
process.start ("bash", QStringList () << "-c" << pyCommand);
其中,
parameter1
和parameter3
是我从文件对话框中获取的QString(路径都正确),parameter2
和parameter4
是硬编码的字符串(仅作为备选,这些字符串中包含'-'和'.'字符)。qStringToStdString
函数是我创建的一个函数,用于将QString
转换为std::string
,它已经可以正常使用了(我已经使用过它)。在控制台上打印PyCommand并且看起来很好。实际上,如果我打开终端并尝试执行printf指令得到的结果,并跟随
bash -c
,它也可以工作。但当我执行Qt应用程序时,它就不能工作。有人能帮我解决吗?我有所遗漏吗?