Best way to store options for panelsHow to dynamically show/hide panel elements using python?Prepare a set of parameters for reuse in multiple panelsHow to create toggle buttons in blender GUI from dynamic list of items?Best/ preferred way of storing Image references?Hide panels with pythonModal operators not working when used through pop-up menuWhat is the best way to store a list of objects with some linked data?vertex coordinates in panel made with python script do not updatebpy_struct for accessing key indentifiers in a keyvalue pair(dict) in a menuStore current region 3dStore object for operator

What would happen if the UK refused to take part in EU Parliamentary elections?

Teaching indefinite integrals that require special-casing

Where in the Bible does the greeting ("Dominus Vobiscum") used at Mass come from?

I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?

Select empty space and change color in vector

How can I replace every global instance of "x[2]" with "x_2"

Have I saved too much for retirement so far?

Trouble understanding overseas colleagues

The plural of 'stomach"

Efficiently merge handle parallel feature branches in SFDX

Cynical novel that describes an America ruled by the media, arms manufacturers, and ethnic figureheads

What is the term when two people sing in harmony, but they aren't singing the same notes?

Hide Select Output from T-SQL

Finding all intervals that match predicate in vector

What would be the benefits of having both a state and local currencies?

Is there a problem with hiding "forgot password" until it's needed?

Opposite of a diet

Why "be dealt cards" rather than "be dealing cards"?

Why Were Madagascar and New Zealand Discovered So Late?

Invariants between two isomorphic vector spaces

Implement the Thanos sorting algorithm

Modulo 2 binary long division in European notation

Personal Teleportation as a Weapon

apt-get update is failing in debian



Best way to store options for panels


How to dynamically show/hide panel elements using python?Prepare a set of parameters for reuse in multiple panelsHow to create toggle buttons in blender GUI from dynamic list of items?Best/ preferred way of storing Image references?Hide panels with pythonModal operators not working when used through pop-up menuWhat is the best way to store a list of objects with some linked data?vertex coordinates in panel made with python script do not updatebpy_struct for accessing key indentifiers in a keyvalue pair(dict) in a menuStore current region 3dStore object for operator













2












$begingroup$


lets say i have a panel and i want to collapse a part if a bool is False



import bpy


class HelloWorldPanel(bpy.types.Panel):
"""Creates a Panel in the Object properties window"""
bl_label = "Hello World Panel"
bl_idname = "OBJECT_PT_hello"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"

def draw(self, context):
layout = self.layout
# where should i define this bool ?
layout.prop(place, "bool")
if bool is True:
obj = context.object

row = layout.row()
row.label(text="Hello world!", icon='WORLD_DATA')

row = layout.row()
row.label(text="Active object is: " + obj.name)



def register():
bpy.utils.register_class(HelloWorldPanel)


def unregister():
bpy.utils.unregister_class(HelloWorldPanel)


if __name__ == "__main__":
register()









share|improve this question









$endgroup$
















    2












    $begingroup$


    lets say i have a panel and i want to collapse a part if a bool is False



    import bpy


    class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
    layout = self.layout
    # where should i define this bool ?
    layout.prop(place, "bool")
    if bool is True:
    obj = context.object

    row = layout.row()
    row.label(text="Hello world!", icon='WORLD_DATA')

    row = layout.row()
    row.label(text="Active object is: " + obj.name)



    def register():
    bpy.utils.register_class(HelloWorldPanel)


    def unregister():
    bpy.utils.unregister_class(HelloWorldPanel)


    if __name__ == "__main__":
    register()









    share|improve this question









    $endgroup$














      2












      2








      2





      $begingroup$


      lets say i have a panel and i want to collapse a part if a bool is False



      import bpy


      class HelloWorldPanel(bpy.types.Panel):
      """Creates a Panel in the Object properties window"""
      bl_label = "Hello World Panel"
      bl_idname = "OBJECT_PT_hello"
      bl_space_type = 'PROPERTIES'
      bl_region_type = 'WINDOW'
      bl_context = "object"

      def draw(self, context):
      layout = self.layout
      # where should i define this bool ?
      layout.prop(place, "bool")
      if bool is True:
      obj = context.object

      row = layout.row()
      row.label(text="Hello world!", icon='WORLD_DATA')

      row = layout.row()
      row.label(text="Active object is: " + obj.name)



      def register():
      bpy.utils.register_class(HelloWorldPanel)


      def unregister():
      bpy.utils.unregister_class(HelloWorldPanel)


      if __name__ == "__main__":
      register()









      share|improve this question









      $endgroup$




      lets say i have a panel and i want to collapse a part if a bool is False



      import bpy


      class HelloWorldPanel(bpy.types.Panel):
      """Creates a Panel in the Object properties window"""
      bl_label = "Hello World Panel"
      bl_idname = "OBJECT_PT_hello"
      bl_space_type = 'PROPERTIES'
      bl_region_type = 'WINDOW'
      bl_context = "object"

      def draw(self, context):
      layout = self.layout
      # where should i define this bool ?
      layout.prop(place, "bool")
      if bool is True:
      obj = context.object

      row = layout.row()
      row.label(text="Hello world!", icon='WORLD_DATA')

      row = layout.row()
      row.label(text="Active object is: " + obj.name)



      def register():
      bpy.utils.register_class(HelloWorldPanel)


      def unregister():
      bpy.utils.unregister_class(HelloWorldPanel)


      if __name__ == "__main__":
      register()






      python






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 4 hours ago









      SylerSyler

      13312




      13312




















          1 Answer
          1






          active

          oldest

          votes


















          5












          $begingroup$

          Blender 2.8 has sub panels.



          As of blender 2.8 can if bl_parent_id is set in a panel it will be appended to the parent panel. Use the usual 'DEFAULT_CLOSED' in the bl_options set to start with panel closed.



          This avoids needing to set up some boolean property to open close UI altogether.



          Here is a sample file I've been testing for ordering panels. First panel is defined as a child of the object transform panel. Second panel is a child of first. Can unregister and re-register with different parent ids to sort sub-panels, which is what I was testing



          enter image description hereThe two demo sub panels appended to object transform



          import bpy
          from bl_ui.properties_object import ObjectButtonsPanel, OBJECT_PT_transform

          class LayoutDemoPanel(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo"
          bl_idname = "SCENE_PT_layout"
          bl_parent_id = 'OBJECT_PT_transform'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")

          class LayoutDemoPanel2(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo 2"
          bl_idname = "SCENE_PT_layout2"
          bl_parent_id = 'SCENE_PT_layout'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")


          def register():
          bpy.utils.register_class(LayoutDemoPanel)
          bpy.utils.register_class(LayoutDemoPanel2)

          def unregister():
          bpy.utils.unregister_class(LayoutDemoPanel2)
          bpy.utils.unregister_class(LayoutDemoPanel1)


          if __name__ == "__main__":
          register()


          If you have some logical setting that when set needs more UI How to dynamically show/hide panel elements using python?






          share|improve this answer











          $endgroup$












          • $begingroup$
            thanks again you are really helpful
            $endgroup$
            – Syler
            4 hours ago










          • $begingroup$
            Cheers. Can still do this the ol' fashioned way too, added link.
            $endgroup$
            – batFINGER
            4 hours ago










          Your Answer





          StackExchange.ifUsing("editor", function ()
          return StackExchange.using("mathjaxEditing", function ()
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          );
          );
          , "mathjax-editing");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "502"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fblender.stackexchange.com%2fquestions%2f135372%2fbest-way-to-store-options-for-panels%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5












          $begingroup$

          Blender 2.8 has sub panels.



          As of blender 2.8 can if bl_parent_id is set in a panel it will be appended to the parent panel. Use the usual 'DEFAULT_CLOSED' in the bl_options set to start with panel closed.



          This avoids needing to set up some boolean property to open close UI altogether.



          Here is a sample file I've been testing for ordering panels. First panel is defined as a child of the object transform panel. Second panel is a child of first. Can unregister and re-register with different parent ids to sort sub-panels, which is what I was testing



          enter image description hereThe two demo sub panels appended to object transform



          import bpy
          from bl_ui.properties_object import ObjectButtonsPanel, OBJECT_PT_transform

          class LayoutDemoPanel(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo"
          bl_idname = "SCENE_PT_layout"
          bl_parent_id = 'OBJECT_PT_transform'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")

          class LayoutDemoPanel2(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo 2"
          bl_idname = "SCENE_PT_layout2"
          bl_parent_id = 'SCENE_PT_layout'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")


          def register():
          bpy.utils.register_class(LayoutDemoPanel)
          bpy.utils.register_class(LayoutDemoPanel2)

          def unregister():
          bpy.utils.unregister_class(LayoutDemoPanel2)
          bpy.utils.unregister_class(LayoutDemoPanel1)


          if __name__ == "__main__":
          register()


          If you have some logical setting that when set needs more UI How to dynamically show/hide panel elements using python?






          share|improve this answer











          $endgroup$












          • $begingroup$
            thanks again you are really helpful
            $endgroup$
            – Syler
            4 hours ago










          • $begingroup$
            Cheers. Can still do this the ol' fashioned way too, added link.
            $endgroup$
            – batFINGER
            4 hours ago















          5












          $begingroup$

          Blender 2.8 has sub panels.



          As of blender 2.8 can if bl_parent_id is set in a panel it will be appended to the parent panel. Use the usual 'DEFAULT_CLOSED' in the bl_options set to start with panel closed.



          This avoids needing to set up some boolean property to open close UI altogether.



          Here is a sample file I've been testing for ordering panels. First panel is defined as a child of the object transform panel. Second panel is a child of first. Can unregister and re-register with different parent ids to sort sub-panels, which is what I was testing



          enter image description hereThe two demo sub panels appended to object transform



          import bpy
          from bl_ui.properties_object import ObjectButtonsPanel, OBJECT_PT_transform

          class LayoutDemoPanel(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo"
          bl_idname = "SCENE_PT_layout"
          bl_parent_id = 'OBJECT_PT_transform'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")

          class LayoutDemoPanel2(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo 2"
          bl_idname = "SCENE_PT_layout2"
          bl_parent_id = 'SCENE_PT_layout'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")


          def register():
          bpy.utils.register_class(LayoutDemoPanel)
          bpy.utils.register_class(LayoutDemoPanel2)

          def unregister():
          bpy.utils.unregister_class(LayoutDemoPanel2)
          bpy.utils.unregister_class(LayoutDemoPanel1)


          if __name__ == "__main__":
          register()


          If you have some logical setting that when set needs more UI How to dynamically show/hide panel elements using python?






          share|improve this answer











          $endgroup$












          • $begingroup$
            thanks again you are really helpful
            $endgroup$
            – Syler
            4 hours ago










          • $begingroup$
            Cheers. Can still do this the ol' fashioned way too, added link.
            $endgroup$
            – batFINGER
            4 hours ago













          5












          5








          5





          $begingroup$

          Blender 2.8 has sub panels.



          As of blender 2.8 can if bl_parent_id is set in a panel it will be appended to the parent panel. Use the usual 'DEFAULT_CLOSED' in the bl_options set to start with panel closed.



          This avoids needing to set up some boolean property to open close UI altogether.



          Here is a sample file I've been testing for ordering panels. First panel is defined as a child of the object transform panel. Second panel is a child of first. Can unregister and re-register with different parent ids to sort sub-panels, which is what I was testing



          enter image description hereThe two demo sub panels appended to object transform



          import bpy
          from bl_ui.properties_object import ObjectButtonsPanel, OBJECT_PT_transform

          class LayoutDemoPanel(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo"
          bl_idname = "SCENE_PT_layout"
          bl_parent_id = 'OBJECT_PT_transform'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")

          class LayoutDemoPanel2(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo 2"
          bl_idname = "SCENE_PT_layout2"
          bl_parent_id = 'SCENE_PT_layout'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")


          def register():
          bpy.utils.register_class(LayoutDemoPanel)
          bpy.utils.register_class(LayoutDemoPanel2)

          def unregister():
          bpy.utils.unregister_class(LayoutDemoPanel2)
          bpy.utils.unregister_class(LayoutDemoPanel1)


          if __name__ == "__main__":
          register()


          If you have some logical setting that when set needs more UI How to dynamically show/hide panel elements using python?






          share|improve this answer











          $endgroup$



          Blender 2.8 has sub panels.



          As of blender 2.8 can if bl_parent_id is set in a panel it will be appended to the parent panel. Use the usual 'DEFAULT_CLOSED' in the bl_options set to start with panel closed.



          This avoids needing to set up some boolean property to open close UI altogether.



          Here is a sample file I've been testing for ordering panels. First panel is defined as a child of the object transform panel. Second panel is a child of first. Can unregister and re-register with different parent ids to sort sub-panels, which is what I was testing



          enter image description hereThe two demo sub panels appended to object transform



          import bpy
          from bl_ui.properties_object import ObjectButtonsPanel, OBJECT_PT_transform

          class LayoutDemoPanel(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo"
          bl_idname = "SCENE_PT_layout"
          bl_parent_id = 'OBJECT_PT_transform'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")

          class LayoutDemoPanel2(bpy.types.Panel, ObjectButtonsPanel):
          bl_label = "Layout Demo 2"
          bl_idname = "SCENE_PT_layout2"
          bl_parent_id = 'SCENE_PT_layout'
          bl_space_type = 'PROPERTIES'
          bl_region_type = 'WINDOW'

          def draw(self, context):
          layout = self.layout

          scene = context.scene

          # Create a simple row.
          layout.label(text=" Simple Row:")

          row = layout.row()
          row.prop(scene, "frame_start")


          def register():
          bpy.utils.register_class(LayoutDemoPanel)
          bpy.utils.register_class(LayoutDemoPanel2)

          def unregister():
          bpy.utils.unregister_class(LayoutDemoPanel2)
          bpy.utils.unregister_class(LayoutDemoPanel1)


          if __name__ == "__main__":
          register()


          If you have some logical setting that when set needs more UI How to dynamically show/hide panel elements using python?







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 4 hours ago

























          answered 4 hours ago









          batFINGERbatFINGER

          26.1k52876




          26.1k52876











          • $begingroup$
            thanks again you are really helpful
            $endgroup$
            – Syler
            4 hours ago










          • $begingroup$
            Cheers. Can still do this the ol' fashioned way too, added link.
            $endgroup$
            – batFINGER
            4 hours ago
















          • $begingroup$
            thanks again you are really helpful
            $endgroup$
            – Syler
            4 hours ago










          • $begingroup$
            Cheers. Can still do this the ol' fashioned way too, added link.
            $endgroup$
            – batFINGER
            4 hours ago















          $begingroup$
          thanks again you are really helpful
          $endgroup$
          – Syler
          4 hours ago




          $begingroup$
          thanks again you are really helpful
          $endgroup$
          – Syler
          4 hours ago












          $begingroup$
          Cheers. Can still do this the ol' fashioned way too, added link.
          $endgroup$
          – batFINGER
          4 hours ago




          $begingroup$
          Cheers. Can still do this the ol' fashioned way too, added link.
          $endgroup$
          – batFINGER
          4 hours ago

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Blender Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fblender.stackexchange.com%2fquestions%2f135372%2fbest-way-to-store-options-for-panels%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Category:Fedor von Bock Media in category "Fedor von Bock"Navigation menuUpload mediaISNI: 0000 0000 5511 3417VIAF ID: 24712551GND ID: 119294796Library of Congress authority ID: n96068363BnF ID: 12534305fSUDOC authorities ID: 034604189Open Library ID: OL338253ANKCR AUT ID: jn19990000869National Library of Israel ID: 000514068National Thesaurus for Author Names ID: 341574317ReasonatorScholiaStatistics

          Reverse int within the 32-bit signed integer range: [−2^31, 2^31 − 1]Combining two 32-bit integers into one 64-bit integerDetermine if an int is within rangeLossy packing 32 bit integer to 16 bitComputing the square root of a 64-bit integerKeeping integer addition within boundsSafe multiplication of two 64-bit signed integersLeetcode 10: Regular Expression MatchingSigned integer-to-ascii x86_64 assembler macroReverse the digits of an Integer“Add two numbers given in reverse order from a linked list”

          Kiel Indholdsfortegnelse Historie | Transport og færgeforbindelser | Sejlsport og anden sport | Kultur | Kendte personer fra Kiel | Noter | Litteratur | Eksterne henvisninger | Navigationsmenuwww.kiel.de54°19′31″N 10°8′26″Ø / 54.32528°N 10.14056°Ø / 54.32528; 10.14056Oberbürgermeister Dr. Ulf Kämpferwww.statistik-nord.deDen danske Stats StatistikKiels hjemmesiderrrWorldCat312794080n790547494030481-4