为什么我不能在启动 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");
尝试在 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");