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

The plural of 'stomach"

Greatest common substring

What are the ramifications of creating a homebrew world without an Astral Plane?

Should my PhD thesis be submitted under my legal name?

Hide Select Output from T-SQL

At which point does a character regain all their Hit Dice?

What to do with wrong results in talks?

Minimal reference content

Can I use my Chinese passport to enter China after I acquired another citizenship?

How to prove that the query oracle is unitary?

Best way to store options for panels

Modify casing of marked letters

Was the picture area of a CRT a parallelogram (instead of a true rectangle)?

How does a character multiclassing into warlock get a focus?

Why is delta-v is the most useful quantity for planning space travel?

What is the oldest known work of fiction?

Why does John Bercow say “unlock” after reading out the results of a vote?

Opposite of a diet

What's the purpose of "true" in bash "if sudo true; then"

What is the opposite of 'gravitas'?

How can a jailer prevent the Forge Cleric's Artisan's Blessing from being used?

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

What defines a dissertation?

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



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













4












$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$
















    4












    $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$














      4












      4








      4





      $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 7 hours ago









      SylerSyler

      14312




      14312




















          1 Answer
          1






          active

          oldest

          votes


















          7












          $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
            7 hours ago










          • $begingroup$
            Cheers. Can still do this the ol' fashioned way too, added link.
            $endgroup$
            – batFINGER
            6 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









          7












          $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
            7 hours ago










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















          7












          $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
            7 hours ago










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













          7












          7








          7





          $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 6 hours ago

























          answered 7 hours ago









          batFINGERbatFINGER

          26.2k52876




          26.2k52876











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










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
















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










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















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




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












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




          $begingroup$
          Cheers. Can still do this the ol' fashioned way too, added link.
          $endgroup$
          – batFINGER
          6 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

          The Calvary Singular or Plural The 2019 Stack Overflow Developer Survey Results Are InAre collective nouns always plural, or are certain ones singular?Is “audience” singular or plural?“Wasn't” vs. “weren't” in a vernacular sentence“My last couple of years” — singular or plural?Is 'rest' singular or plural?Is “all but one” singular or plural?Whether to use the singular or plural form of basis?Singular and Plural for numbersIs there a plural form of teeth?performance: plural vs singular?singular or plural nouns?Singular and Plural

          How does one intimidate enemies without having the capacity for violence?Ideas for how aliens would approach this fight?How to convey the scale of my humanoid without science or units?How does the “space drive” conserve momentum?Planet Vanishes - How does this affect the orbiting starships?How does a community of a Universe Simulator have the same language as its creator?How would US Presidential elections be affected if voters could choose the state their vote for President was counted in?How Does One Ensures the Immortality of Their ConsciousnessHow do I retain national independence while also having a one world government?How can Ganymede have an Earth-like gravity without us having realized it?How would one make a lion mount for a fantasy world?

          Output visual diagram of pictureASCII-art logic gate diagramBooks on a ShelfDetermine the Dimensions of a Rotated RectangleDraw a Houndstooth PatternDraw and label an ASCII hexagonal gridGolf me an ASCII AlphabetASCII Jigsaw PuzzleOutput a pretty boxASCII-Art Venn DiagramASCII Exact Cover with Rectangles