为什么在启动blender时我不能通过QProcess传递参数?

时间:2017-04-15 05:51:41

标签: qt blender qprocess

尝试在QT中的控制台应用程序的main函数中运行此代码,但它只启动Blender GUI。这些参数应该是开始后台渲染。

我测试的参数是正确的,它们在CMD上工作正常。这似乎是一个特定的搅拌机问题,但我可能错了。似乎使用QProcess它不允许Blender使用参数。它启动应用程序而不传递任何参数。

min1

编辑:

因此浏览SO时,我发现了一些可以正常工作的东西,但这并没有使用QT功能。我宁愿找到这样做的QT方式。它本质上正在做的是运行CMD并通过CMD启动搅拌机。我有办法使用QT吗?

QProcess myProcess;
QString blender = "C:/Program Files/Blender Foundation/Blender/blender.exe";
QStringList arguments;
  arguments << "blender" << "-b" << "E:/my/file.blend" << "-o" << " E:/my/output/folder/"<< "-a";

myProcess.start(blender,arguments);

1 个答案:

答案 0 :(得分:1)

感谢@MaxGo和@ G.M.因为他们让我走上了正确的道路。

两件事: 首先,使用&#34;搅拌机&#34;是的。国旗是其中一个问题。我无法启动.exe文件,也希望blender接收参数。

其次,start()不起作用,你需要使用startDetached或execute()才能工作。

以下是正确启动此功能的最终代码。

QDir::setCurrent(blenderDirectory);
myProcess.startDetached("blender -b " + projectPath + " -o " + projectOutput + " -a");