目標
- [x] 總結Blender之Panel
總結
Blender之Panel需要從Blender界面組成開始理解. 直觀上Blender的界面層次為 Editors ‣ Regions ‣ (Tabs) ‣ Panels ‣ Controls
. 面板是用戶界面的最小組織單位.
定制Blender插件界面, 就是創建一個個Panel.
解析
Blender界面
Blender界面組成
Blender界面元素層次關系為
Window ‣ Screen ‣ Areas ‣ Editors ‣ Regions ‣ (Tabs) ‣ Panels ‣ Controls
屏幕由一個或多個區域(Area)組成, 每個區域都包含一個編輯器(Editor)
區域(Area)
應用窗口在桌面上總是顯示為矩形,並被分割為一些可改變大小的區域。一個區域包含特定類型編輯器的工作區,如3D視圖編輯器,或者大綱視圖。
區塊
每個編輯器都被細分為幾個小區塊。An Editor is subdivided into regions.
- 主區塊
- 標題欄(菜單和常用工具的容器)
- 工具欄(面板)(默認在左側)
- 操作器面板, 它是工具欄的一部分.
- 屬性欄(默認在右側)
選項卡(Tabs)
選項卡是用戶界面中的重疊區域。選項卡可以是垂直(工具欄)或者水平的(屬性編輯器、用戶設置)。
面板(Panel)
面板是用戶界面的最小組織單位。折疊面板可隱藏內容。 屬性編輯器 使用了面板
插件UI開發
bpy.types.Panel
屬性
- bl_space_type - 放置面板的區域(Editor) [‘EMPTY’, ‘VIEW_3D’, ‘PROPERTIES’, ...], 默認為 ‘EMPTY’
- bl_region_type - 放置面板的區塊(Region)([Blender區域組成])
- bl_category - 選項卡
- bl_context - 選項卡2, 與內容相關的選項卡
- bl_idname - 關鍵字
- bl_label - 標簽
方法
- poll(context)
- draw(context) - 在面板布局中繪制UI元素
- draw_header(context) - 在面板標題布局中繪制UI元素