主要UI布局
- row 横向切分
- align 紧贴
- column 竖向切分
- align 紧贴
- split 自定义横向切分
- factor 切分比例
- align 紧贴
-
主要UI布局修改
scale_x 修改横向缩放
- scale_y 修改竖向缩放
- use_property_split 缩到右边
use_property_decorate 缩到右边后不显示k帧小按钮
主要UI类型
label 标签
- 常用属性
- text 输入的文字,须是字符串类型
- icon 可选图标
- 常用属性
- prop 属性
- 常用属性
- text 同上
- data 数据
- property 要暴露的属性名字(标识符)
- slider 滑块
- 其他属性
- expand 多用于枚举项
- toggle 用于布尔
- invert_checkbox 布尔反转
- emboss 只显示文本不显示框
- 常用属性
- operator
指定UI在面板上绘制
class HelloWorldPanel(bpy.types.Panel): “””Creates a Panel in the Object properties window””” #这个是面板注释 bl_label = “Hello World Panel” #面板的名字 bl_idname = “OBJECT_PT_hello” #唯一标识符,不可重复 bl_space_type = ‘PROPERTIES’ #在属性面板绘制 bl_region_type = ‘WINDOW’ bl_context = “object” #属性窗口下的物体选项卡
#主要绘制部分def draw(self, context):layout = self.layout# 获取当前激活物体obj = context.active_object# 切分面板row = layout.row()# 添加标签2row.label(text="这里是标签1", icon='WORLD_DATA')# 添加标签2row = layout.row()row.label(text="这里是标签2,激活物体名字是: " + obj.name)# 暴露属性row = layout.row()row.prop(obj, "name")# 暴露操作符按钮row = layout.row()row.operator("mesh.primitive_cube_add")
注册
def register(): bpy.utils.register_class(HelloWorldPanel)
def unregister(): bpy.utils.unregister_class(HelloWorldPanel)
运行注册
if name == “main“: register()
```
作业1
在属性面板的场景选项卡下,绘制一个面板(面板标题为’作业1‘)
面板与布局内容如下:
标签(当前物体的名字)
属性(当前物体的位置,使用竖向排布,并加上一个小logo)
属性(当前场景的x,y分辨率,使用横向排布)
操作符(渲染静帧f12的小按钮,文字‘点此渲染’)
