Panel(bpy_struct)¶
Basic Panel Example¶
This script is a simple panel which will draw into the object properties section.
Notice the ‘CATEGORY_PT_name’ Panel.bl_idname
, this is a naming
convention for panels.
Note
Panel subclasses must be registered for blender to use them.
import bpy
class HelloWorldPanel(bpy.types.Panel):
bl_idname = "OBJECT_PT_hello_world"
bl_label = "Hello World"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"
def draw(self, context):
self.layout.label(text="Hello World")
bpy.utils.register_class(HelloWorldPanel)
Simple Object Panel¶
This panel has a Panel.poll
and Panel.draw_header
function,
even though the contents is basic this closely resembles blenders panels.
import bpy
class ObjectSelectPanel(bpy.types.Panel):
bl_idname = "OBJECT_PT_select"
bl_label = "Select"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"
bl_options = {'DEFAULT_CLOSED'}
@classmethod
def poll(cls, context):
return (context.object is not None)
def draw_header(self, context):
layout = self.layout
layout.label(text="My Select Panel")
def draw(self, context):
layout = self.layout
box = layout.box()
box.label(text="Selection Tools")
box.operator("object.select_all").action = 'TOGGLE'
row = box.row()
row.operator("object.select_all").action = 'INVERT'
row.operator("object.select_random")
bpy.utils.register_class(ObjectSelectPanel)
Mix-in Classes¶
A mix-in parent class can be used to share common properties and
Menu.poll
function.
import bpy
class View3DPanel:
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
bl_category = "Tool"
@classmethod
def poll(cls, context):
return (context.object is not None)
class PanelOne(View3DPanel, bpy.types.Panel):
bl_idname = "VIEW3D_PT_test_1"
bl_label = "Panel One"
def draw(self, context):
self.layout.label(text="Small Class")
class PanelTwo(View3DPanel, bpy.types.Panel):
bl_idname = "VIEW3D_PT_test_2"
bl_label = "Panel Two"
def draw(self, context):
self.layout.label(text="Also Small Class")
bpy.utils.register_class(PanelOne)
bpy.utils.register_class(PanelTwo)
base class — bpy_struct
-
class
bpy.types.
Panel
(bpy_struct)¶ Panel containing UI elements
-
bl_category
¶ Type: string, default “”, (never None)
-
bl_context
¶ The context in which the panel belongs to. (TODO: explain the possible combinations bl_context/bl_region_type/bl_space_type)
Type: string, default “”, (never None)
-
bl_idname
¶ If this is set, the panel gets a custom ID, otherwise it takes the name of the class used to define the panel. For example, if the class name is “OBJECT_PT_hello”, and bl_idname is not set by the script, then bl_idname = “OBJECT_PT_hello”
Type: string, default “”, (never None)
-
bl_label
¶ The panel label, shows up in the panel header at the right of the triangle used to collapse the panel
Type: string, default “”, (never None)
-
bl_options
¶ Options for this panel type
DEFAULT_CLOSED
Default Closed, Defines if the panel has to be open or collapsed at the time of its creation.HIDE_HEADER
Hide Header, If set to False, the panel shows a header, which contains a clickable arrow to collapse the panel and the label (see bl_label).
Type: enum set in {‘DEFAULT_CLOSED’, ‘HIDE_HEADER’}, default {‘DEFAULT_CLOSED’}
-
bl_order
¶ Panels with lower numbers are default ordered before panels with higher numbers
Type: int in [0, inf], default 0
-
bl_owner_id
¶ Type: string, default “”, (never None)
-
bl_parent_id
¶ If this is set, the panel becomes a sub-panel
Type: string, default “”, (never None)
-
bl_region_type
¶ The region where the panel is going to be used in
Type: enum in [‘WINDOW’, ‘HEADER’, ‘CHANNELS’, ‘TEMPORARY’, ‘UI’, ‘TOOLS’, ‘TOOL_PROPS’, ‘PREVIEW’, ‘HUD’, ‘NAVIGATION_BAR’, ‘EXECUTE’, ‘FOOTER’, ‘TOOL_HEADER’], default ‘WINDOW’
-
bl_space_type
¶ The space where the panel is going to be used in
EMPTY
Empty.VIEW_3D
3D Viewport, Manipulate objects in a 3D environment.IMAGE_EDITOR
UV/Image Editor, View and edit images and UV Maps.NODE_EDITOR
Node Editor, Editor for node-based shading and compositing tools.SEQUENCE_EDITOR
Video Sequencer, Video editing tools.CLIP_EDITOR
Movie Clip Editor, Motion tracking tools.DOPESHEET_EDITOR
Dope Sheet, Adjust timing of keyframes.GRAPH_EDITOR
Graph Editor, Edit drivers and keyframe interpolation.NLA_EDITOR
Nonlinear Animation, Combine and layer Actions.TEXT_EDITOR
Text Editor, Edit scripts and in-file documentation.CONSOLE
Python Console, Interactive programmatic console for advanced editing and script development.INFO
Info, Log of operations, warnings and error messages.TOPBAR
Top Bar, Global bar at the top of the screen for global per-window settings.STATUSBAR
Status Bar, Global bar at the bottom of the screen for general status information.OUTLINER
Outliner, Overview of scene graph and all available data-blocks.PROPERTIES
Properties, Edit properties of active object and related data-blocks.FILE_BROWSER
File Browser, Browse for files and assets.PREFERENCES
Preferences, Edit persistent configuration settings.
Type: enum in [‘EMPTY’, ‘VIEW_3D’, ‘IMAGE_EDITOR’, ‘NODE_EDITOR’, ‘SEQUENCE_EDITOR’, ‘CLIP_EDITOR’, ‘DOPESHEET_EDITOR’, ‘GRAPH_EDITOR’, ‘NLA_EDITOR’, ‘TEXT_EDITOR’, ‘CONSOLE’, ‘INFO’, ‘TOPBAR’, ‘STATUSBAR’, ‘OUTLINER’, ‘PROPERTIES’, ‘FILE_BROWSER’, ‘PREFERENCES’], default ‘EMPTY’
-
bl_translation_context
¶ Type: string, default “*”, (never None)
-
bl_ui_units_x
¶ When set, defines popup panel width
Type: int in [0, inf], default 0
-
is_popover
¶ Type: boolean, default False, (readonly)
-
text
¶ XXX todo
Type: string, default “”, (never None)
-
use_pin
¶ Show the panel on all tabs
Type: boolean, default False
-
classmethod
poll
(context)¶ If this method returns a non-null output, then the panel can be drawn
Return type: boolean
-
draw
(context)¶ Draw UI elements into the panel UI layout
-
draw_header
(context)¶ Draw UI elements into the panel’s header UI layout
-
draw_header_preset
(context)¶ Draw UI elements for presets in the panel’s header
-
classmethod
bl_rna_get_subclass
(id, default=None)¶ Parameters: id (string) – The RNA type identifier. Returns: The RNA type or default when not found. Return type: bpy.types.Struct
subclass
-
classmethod
bl_rna_get_subclass_py
(id, default=None)¶ Parameters: id (string) – The RNA type identifier. Returns: The class or default when not found. Return type: type
-
Inherited Properties
Inherited Functions