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_description
¶ - Type
string, default “”
-
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).INSTANCED
Instanced Panel – Multiple panels with this type can be used as part of a list depending on data external to the UI. Used to create panels for the modifiers and other stacks.HEADER_LAYOUT_EXPAND
Expand Header Layout – Allow buttons in the header to stretch and shrink to fill the entire layout width.DRAW_BOX
Box Style – Display panel with the box widget theme.
- Type
enum set in {‘DEFAULT_CLOSED’, ‘HIDE_HEADER’, ‘INSTANCED’, ‘HEADER_LAYOUT_EXPAND’, ‘DRAW_BOX’}, 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.SPREADSHEET
Spreadsheet – Explore geometry data in a table.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’, ‘SPREADSHEET’, ‘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
-
custom_data
¶ Panel data
- Type
Constraint
, (readonly)
-
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