【发布时间】:2020-11-27 15:29:36
【问题描述】:
我正在为 blender 2.8x 编写一个导入插件,我想利用多文件选择功能。 不幸的是,我在“ImportHelper”(我从中派生的类)中找不到任何相关规定,并且网络搜索没有产生任何似乎有效的东西,我似乎也无法在文档中找到任何内容。
【问题讨论】:
标签: python plugins import blender multipleselection
我正在为 blender 2.8x 编写一个导入插件,我想利用多文件选择功能。 不幸的是,我在“ImportHelper”(我从中派生的类)中找不到任何相关规定,并且网络搜索没有产生任何似乎有效的东西,我似乎也无法在文档中找到任何内容。
【问题讨论】:
标签: python plugins import blender multipleselection
事实证明,要完成这项工作,您需要做几件事,但文档中尚未涵盖。
首先,了解基类“ImportHelper”在导入脚本中的作用是有帮助的。初始化时,脚本调用“context.window_manager.fileselect_add(self)”,它将几个对象添加到您的类中。 源代码中的这个字符串泄露了它:
"字符串属性 'filepath'、'filename'、'directory' 和 '文件' " “集合在运算符中存在时被分配”
“文件”对象是我们需要的,但只有在您的类中也有正确的属性时才会出现,例如:
files: CollectionProperty(
type=bpy.types.OperatorFileListElement,
options={'HIDDEN', 'SKIP_SAVE'},
)
然后,如果存在,您可以在类的“执行”方法中访问它,以遍历您选择的所有文件:
for meshfile in self.files:
filepath = meshfile.name
print(filepath)
另外,请记住包含正确的属性,我将这些属性包含在我的导入器中:
from bpy.props import (
BoolProperty,
CollectionProperty,
StringProperty,
)
【讨论】: