Blender viewport sidebar Panel to header Popover
34 lines
import bpy
import bpy
class VIEW3D_PT_hello_world_popover(bpy.types.Panel):
class VIEW3D_PT_hello_world_popover(bpy.types.Panel):
"""Creates a Panel in the Viewport Sidebar > Item tab"""
"""Creates a Popover in the Viewport Header"""
bl_label = "Hello World Panel"
bl_label = "Hello World Panel"
bl_idname = "VIEW3D_PT_hello"
bl_idname = "VIEW3D_PT_hello_world_popover"
bl_space_type = 'VIEW_3D'
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
bl_region_type = 'HEADER'
bl_category = "Item"
def draw(self, context):
def draw(self, context):
layout = self.layout
layout = self.layout
obj = context.object
obj = context.object
row = layout.row()
row = layout.row()
row.label(text="Hello world!", icon='WORLD_DATA')
row.label(text="Hello world!", icon='WORLD_DATA')
row = layout.row()
if obj:
row.label(text="Active object is: " + obj.name)
row = layout.row()
row = layout.row()
row.label(text=f"Active object is: {obj.name}")
row.prop(obj, "name")
row = layout.row()
row.prop(obj, "name")
else:
row = layout.row()
row.label(text="No active object")
row = layout.row()
row = layout.row()
row.operator("mesh.primitive_cube_add")
row.operator("mesh.primitive_cube_add")
def define_hello_world_popover(self, context):
"""Defines the Hello World popover button's appearance in the header."""
layout = self.layout
layout.popover(
panel="VIEW3D_PT_hello_world_popover",
text="Hello",
icon='WORLD_DATA'
)
def register():
def register():
bpy.utils.register_class(VIEW3D_PT_hello_world_popover)
bpy.utils.register_class(VIEW3D_PT_hello_world_popover)
bpy.types.VIEW3D_HT_header.append(define_hello_world_popover)
def unregister():
def unregister():
bpy.utils.unregister_class(VIEW3D_PT_hello_world_popover)
bpy.utils.unregister_class(VIEW3D_PT_hello_world_popover)
bpy.types.VIEW3D_HT_header.remove(define_hello_world_popover)
if __name__ == "__main__":
if __name__ == "__main__":
register()
register()