# Panel Klassen "bpy.types.Panel" använder ni när ni skapar paneler till ert användargränssnitt. *N-panelen* exempelvis består utav flera paneler som alla ärver ifrån denna klassen, men de kan även placeras på andra ytor som bland *Properties*. ## Skelett ```python class MY_ADDON_PT_cool_panel(bpy.types.Panel): bl_space_type = "VIEW_3D" bl_region_type = "UI" bl_category = "Crazy Add-on" bl_label = "Cool Panel" def draw(self, context): layout = self.layout ``` Med `bl_space_type`, `bl_region_type`, `bl_category`, `bl_label` och `bl_context` beskriver ni vart någonstans panelen ska synas * `bl_space_type` — Editor-typen panelen hör hemma i [🔗](https://docs.blender.org/api/current/bpy_types_enum_items/space_type_items.html#rna-enum-space-type-items)[💡](https://docs.blender.org/manual/en/latest/editors/index.html) * `bl_region_type` — Ytan, inuti editorn, panelen ska placeras på [🔗](https://docs.blender.org/api/current/bpy_types_enum_items/region_type_items.html#rna-enum-region-type-items)[💡](https://docs.blender.org/manual/en/latest/interface/window_system/regions.html) * `bl_category` — Kategorin panelen går under - om applicerbart (Valfri text) * `bl_label` — Namnet på panelen (Valfri text) För mer info se [Panel - Blender Python API](https://docs.blender.org/api/current/bpy.types.Panel.html) # def draw(self, context): En klass som skapar ett användargränssnitt kommer alltid att behöva en draw-metod. Inuti klassens draw-metod beskrivs alla dess UI-element så som rader, kolumner, knappar osv. För mer info se [UILayout - Blender Python API](https://docs.blender.org/api/current/bpy.types.UILayout.html) **Exempelkod** ```python # Label, Operator och Property def draw(self, context): layout = self.layout scene = context.scene layout.label(text="A text label", icon="MONKEY") layout.operator("mesh.primitive_monkey_add") layout.prop(scene, "use_gravity") ``` ```python # Kolumner - Vol. 1 def draw(self, context): layout = self.layout col = layout.column(align=True) col.label(text="Label 1") col.operator("mesh.primitive_cone_add") col.separator() col.label(text="Label 2") col.operator("mesh.primitive_torus_add") ``` ```python # Kolumner - Vol. 2 def draw(self, context): layout = self.layout row = layout.row() # Både kolumner placeras horisontellt på samma rad col = row.column(align=True) col.label(text="Column 1") col.operator("mesh.primitive_cone_add") col = row.column(align=True) col.label(text="Column 2") col.operator("mesh.primitive_torus_add") ``` ```python # Simpel Image Preview # (Har personligen inte hittat någon smidigare metod för detta) def draw(self, context): layout = self.layout image = bpy.data.images["my_image"] icon_id = image.preview.icon_id layout.template_icon(icon_value=icon_id, scale=10) ```