[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2415] branches/geodesic_domes/ funnylayout.py: An example how to build 'strange' (but nice) GUI

Peter K.H. Gragert pkhgragert at gmail.com
Mon Oct 10 17:53:34 CEST 2011


Revision: 2415
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2415
Author:   pkhg
Date:     2011-10-10 15:53:33 +0000 (Mon, 10 Oct 2011)
Log Message:
-----------
An example how to build 'strange' (but nice) GUI

Added Paths:
-----------
    branches/geodesic_domes/funnylayout.py

Added: branches/geodesic_domes/funnylayout.py
===================================================================
--- branches/geodesic_domes/funnylayout.py	                        (rev 0)
+++ branches/geodesic_domes/funnylayout.py	2011-10-10 15:53:33 UTC (rev 2415)
@@ -0,0 +1,89 @@
+#http://blenderartists.org/forum/showthread.php?t=210513&p=1799525&viewfull=1#post1799525
+#http://blenderartists.org/forum/showthread.php?210513-blender-2.56-UI-scripting
+#----------------------------------------------------------
+# File layout.py
+#----------------------------------------------------------
+import bpy
+from bpy.props import IntProperty
+
+class LayoutPanel(bpy.types.Panel):
+    bl_label = "Panel with funny layout"
+    bl_space_type = "VIEW_3D"
+    bl_region_type = "TOOL_PROPS"
+    
+    def draw(self, context):
+        layout = self.layout
+
+        layout.label("First row")
+        row = layout.row(align=True)
+        row.alignment = 'EXPAND'
+        row.operator("object.button", text="1").mode = 1
+        row.operator("object.button", text="2", icon='MESH_DATA').mode = 2
+        row.operator("object.button", icon='LAMP_DATA')
+
+        row = layout.row(align=False)
+        row.alignment = 'LEFT'
+        row.operator("object.button", text="4").mode = 4
+        row.operator("object.button", text="", icon='MATERIAL').mode =5
+        row.operator("object.button", text="6", icon='BLENDER').mode=6
+        row.operator("object.button", text="7", icon='WORLD').mode=7
+
+        layout.label("Third row", icon='TEXT')
+        row = layout.row()
+        row.alignment = 'RIGHT'
+        row.operator("object.button", text="8").mode=8
+        row.operator("object.button", text="9", icon='SCENE').mode=9
+        row.operator("object.button", text="10", icon='BRUSH_INFLATE').mode=10
+        #etc for the other object.buttons calls mode = ....
+        layout.label("Fourth row", icon='ACTION')
+        row = layout.row()
+        box = row.box()
+        box.operator("object.button", text="11", emboss=False)
+        box.operator("object.button", text="12", emboss=False)
+        col = row.column()
+        subrow = col.row()
+        subrow.operator("object.button", text="13")
+        subrow.operator("object.button", text="14")
+        subrow = col.row(align=True)
+        subrow.operator("object.button", text="15")
+        subrow.operator("object.button", text="16")
+        box = row.box()
+        box.operator("object.button", text="17")
+        box.separator()
+        box.operator("object.button", text="18")
+        box.operator("object.button", text="19")
+        
+        layout.label("Fifth row")
+        row = layout.row()
+        split = row.split(percentage=0.25)
+        col = split.column()
+        col.operator("object.button", text="21")
+        col.operator("object.button", text="22")
+        split = split.split(percentage=0.3)
+        col = split.column()
+        col.operator("object.button", text="23")
+        split = split.split(percentage=0.5)
+        col = split.column()
+        col.operator("object.button", text="24")
+        col.operator("object.button", text="25")
+        
+
+class OBJECT_OT_Button(bpy.types.Operator):
+    bl_idname = "object.button"
+    bl_label = "Button"
+    mode = IntProperty(name="mode",min =-100, max =20,soft_max=10,default =-99) 
+    def execute(self, context):
+        print("Hello world!")
+        print(self.mode)
+        return{'FINISHED'}    
+
+def register():
+    bpy.utils.register_module(__name__)
+    pass
+
+def unregister():
+    bpy.utils.unregister_module(__name__)
+    pass
+
+if __name__ == "__main__":
+    register()



More information about the Bf-extensions-cvs mailing list