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_CLOSEDDefault Closed, Defines if the panel has to be open or collapsed at the time of its creation.HIDE_HEADERHide 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).INSTANCEDInstanced 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_EXPANDExpand Header Layout, Allow buttons in the header to stretch and shrink to fill the entire layout width.DRAW_BOXBox 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
EMPTYEmpty.VIEW_3D3D Viewport, Manipulate objects in a 3D environment.IMAGE_EDITORUV/Image Editor, View and edit images and UV Maps.NODE_EDITORNode Editor, Editor for node-based shading and compositing tools.SEQUENCE_EDITORVideo Sequencer, Video editing tools.CLIP_EDITORMovie Clip Editor, Motion tracking tools.DOPESHEET_EDITORDope Sheet, Adjust timing of keyframes.GRAPH_EDITORGraph Editor, Edit drivers and keyframe interpolation.NLA_EDITORNonlinear Animation, Combine and layer Actions.TEXT_EDITORText Editor, Edit scripts and in-file documentation.CONSOLEPython Console, Interactive programmatic console for advanced editing and script development.INFOInfo, Log of operations, warnings and error messages.TOPBARTop Bar, Global bar at the top of the screen for global per-window settings.STATUSBARStatus Bar, Global bar at the bottom of the screen for general status information.OUTLINEROutliner, Overview of scene graph and all available data-blocks.PROPERTIESProperties, Edit properties of active object and related data-blocks.FILE_BROWSERFile Browser, Browse for files and assets.SPREADSHEETSpreadsheet, Explore geometry data in a table.PREFERENCESPreferences, 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.Structsubclass
- 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