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

Why can't I pass arguments with QProcess when launching blender?

尝试在 QT 控制台应用程序的主要功能中 运行 此代码,但它仅启动 Blender GUI。这些参数应该启动后台渲染。

我测试了这些参数是正确的,它们在 CMD 上运行良好。这似乎是搅拌机的特定问题,但我可能是错的。似乎使用 QProcess 不允许 Blender 使用参数。它在不传递任何参数的情况下启动应用程序。

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);

编辑:

所以浏览 SO,我发现了一些有用的东西,但这没有使用 QT 功能。我宁愿找到这样做的 QT 方式。它本质上做的是 运行ning CMD 并通过 CMD 启动搅拌机。有什么方法可以使用 QT 做到这一点吗?

QDir::setCurrent(blender);
system("blender -b E:\Blender\BlendSwap\55510_Ciclos_Town_-_10_Male_Characters\cidade_ciclos-bonecos.blend -o E:\Blender\BlendSwap\55510_Ciclos_Town_-_10_Male_Characters\exp\frame_### -a");

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

两件事: 首先,使用 "blender" 标志确实是问题之一。我无法启动 .exe 文件,还希望 blender 接受参数。

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

下面是正确启动的最终代码。

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