CatHide_v1_2.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:CatHide-Addon-for-Blender 作者: samytichadou 项目源码 文件源码
def execute(self, context):
        scene=bpy.context.scene
        plist=scene.cathide_panel_list
        idx=scene.cathide_index
        slist=scene.cathide_specific_panel_list
        sptoregister=[]
        sptounregister=[]
        nok=plist[idx].name

        #register panels
        for p in slist:
            if p.specific_panel_state==True:
                sptoregister.append(p.name)

        for p in sptoregister:
            for panel in bpy.types.Panel.__subclasses__():
                if hasattr(panel, 'bl_space_type'):
                    if hasattr(panel, 'bl_region_type'):
                        if hasattr(panel, 'bl_category'):
                            if hasattr(panel, 'bl_label'):
                                if panel.bl_space_type=="VIEW_3D":
                                    if panel.bl_region_type=="TOOLS":
                                        if panel.bl_category==nok:
                                            if panel.bl_label==p:
                                                if "bl_rna" not in panel.__dict__:
                                                    bpy.utils.register_class(panel)
        #unregister panels
        for p in slist:
            if p.specific_panel_state==False:
                sptounregister.append(p.name)

        for p in sptounregister:
            for panel in bpy.types.Panel.__subclasses__():
                if hasattr(panel, 'bl_space_type'):
                    if hasattr(panel, 'bl_region_type'):
                        if hasattr(panel, 'bl_category'):
                            if hasattr(panel, 'bl_label'):
                                if panel.bl_space_type=="VIEW_3D":
                                    if panel.bl_region_type=="TOOLS":
                                        if panel.bl_category==nok:
                                            if panel.bl_label==p:
                                                if "bl_rna" in panel.__dict__:
                                                    bpy.utils.unregister_class(panel)

        bpy.ops.cathide.refresh()

        info = 'Unselected Panels Hidden'
        self.report({'INFO'}, info)

        return {'FINISHED'} 

# add preset operator
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号