Files
test2/release/scripts/templates_py/ui_list_generic.py
demeterdzadik@gmail.com 75d6228583 PyAPI: Generic UIList for CollectionProperties
This patch adds a draw_ui_list() function, which is a wrapper around
layout.template_list(). It implements generic add/remove/move buttons,
passing the correct "row" integer to template_list(), as well as a
drop-down menu, if provided, making it a complete solution for
consistent UILists for addons.

Differential Revision: https://developer.blender.org/D14119
2023-01-27 14:51:13 +01:00

47 lines
1005 B
Python

import bpy
from bl_ui.generic_ui_list import draw_ui_list
class MyPropGroup(bpy.types.PropertyGroup):
name: bpy.props.StringProperty()
class MyPanel(bpy.types.Panel):
bl_label = "My Label"
bl_idname = "SCENE_PT_list_demo"
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
bl_category = 'My Category'
def draw(self, context):
layout = self.layout
draw_ui_list(
layout,
context,
list_context_path="scene.my_list",
active_idx_context_path="scene.my_list_active_idx"
)
classes = [
MyPropGroup,
MyPanel
]
class_register, class_unregister = bpy.utils.register_classes_factory(classes)
def register():
class_register()
bpy.types.Scene.my_list = bpy.props.CollectionProperty(type=MyPropGroup)
bpy.types.Scene.my_list_active_idx = bpy.props.IntProperty()
def unregister():
class_unregister()
del bpy.types.Scene.my_list
del bpy.types.Scene.my_list_active_idx
register()