python - 在 blender 导入插件中导入多个文件

标签 python plugins import blender multipleselection

我正在为 Blender 2.8x 编写一个导入插件,我想利用多文件选择功能。 不幸的是,我在“ImportHelper”(我派生的类)中找不到任何相关规定,并且网络搜索没有产生任何似乎有效的内容,而且我似乎在文档中也找不到任何内容。

最佳答案

事实证明,您需要做几件事才能使这项工作正常进行,但文档中尚未涵盖。

首先,它有助于了解基类“ImportHelper”在导入脚本中使用它时的作用。初始化时,脚本调用“context.window_manager.fileselect_add(self)”,它将多个对象添加到您的类中。 源代码中的这个字符串泄露了它:

"The string properties 'filepath', 'filename', 'directory' and a 'files' " "collection are assigned when present in the operator"

"file"对象是我们所需要的,但只有当您的类中也有正确的属性时,才会出现该对象,例如:

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

关于python - 在 blender 导入插件中导入多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63299327/

相关文章:

python - 错误 : Command errored out with exit status 1

python - 如何找到特定类型的单词并计算它

python - 跳过滑动窗口

python - 导入类 python

java - 将 Eclipse 项目导入 Netbeans 时出错

javascript - 计算滑动平均值

java - 打破自定义 block

grails - 云端共享Java类

android - Flipper Network 插件不显示网络请求

python - 使用 Prometheus Python 客户端时出现时间戳错误 - "Error on ingesting samples that are too old or are too far into the future"