.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.SizerFlags:

==========================================================================================================================================
|phoenix_title|  **wx.SizerFlags**
==========================================================================================================================================

Container for sizer items flags providing readable names for them.          

Normally, when you add an item to a sizer via :meth:`wx.Sizer.Add` , you have to specify a lot of flags and parameters which can be unwieldy. This is where :ref:`wx.SizerFlags`  comes in: it allows you to specify all parameters using the named methods instead. For example, instead of 

::

        sizer.Add(ctrl, 0, wx.EXPAND | wx.ALL, 10)



you can now write 

::

        sizer.Add(ctrl, wx.SizerFlags().Expand().Border(wx.ALL, 10))



This is more readable and also allows you to create :ref:`wx.SizerFlags`  objects which can be reused for several sizer items. 

::

            flagsExpand = wx.SizerFlags(1)
            flagsExpand.Expand().Border(wx.ALL, 10)

            sizer.Add(ctrl1, flagsExpand)
            sizer.Add(ctrl2, flagsExpand)



Note that by specification, all methods of :ref:`wx.SizerFlags`  return the :ref:`wx.SizerFlags`  object itself to allowing chaining multiple methods calls like in the examples above. 





         



.. seealso:: :ref:`wx.Sizer`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>SizerFlags</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.SizerFlags_inheritance.png" alt="Inheritance diagram of SizerFlags" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.SizerFlags.html" title="wx.SizerFlags" alt="" coords="5,5,116,35"/> </map> 
   </p>
   </div>

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.SizerFlags.__init__`                                                  Creates the :ref:`wx.Sizer`  with the proportion specified by `proportion`.
:meth:`~wx.SizerFlags.Align`                                                     Sets the alignment of this :ref:`wx.SizerFlags`  to `align`.
:meth:`~wx.SizerFlags.Border`                                                    Sets the :ref:`wx.SizerFlags`  to have a border of a number of pixels specified by `borderinpixels`  with the directions specified by `direction`.
:meth:`~wx.SizerFlags.Bottom`                                                    Aligns the object to the bottom, similar for  ``Align(wxALIGN_BOTTOM)`` .
:meth:`~wx.SizerFlags.Center`                                                    Sets the object of the :ref:`wx.SizerFlags`  to center itself in the area it is given.
:meth:`~wx.SizerFlags.CenterHorizontal`                                          Same as :meth:`~SizerFlags.CentreHorizontal` .
:meth:`~wx.SizerFlags.CenterVertical`                                            Same as :meth:`~SizerFlags.CentreVertical` .
:meth:`~wx.SizerFlags.Centre`                                                    :ref:`wx.Center`  for people with the other dialect of English.
:meth:`~wx.SizerFlags.CentreHorizontal`                                          Center an item only in horizontal direction.
:meth:`~wx.SizerFlags.CentreVertical`                                            Center an item only in vertical direction.
:meth:`~wx.SizerFlags.DisableConsistencyChecks`                                  Globally disable checks for sizer flag consistency in debug builds.
:meth:`~wx.SizerFlags.DoubleBorder`                                              Sets the border in the given `direction`  having twice the default border size.
:meth:`~wx.SizerFlags.DoubleHorzBorder`                                          Sets the border in left and right directions having twice the default border size.
:meth:`~wx.SizerFlags.Expand`                                                    Sets the object of the :ref:`wx.SizerFlags`  to expand to fill as much area as it can.
:meth:`~wx.SizerFlags.FixedMinSize`                                              Set the  ``FIXED_MINSIZE``   flag which indicates that the initial size of the window should be also set as its minimal size.
:meth:`~wx.SizerFlags.GetDefaultBorder`                                          Returns the border used by default in :ref:`wx.Border`  method.
:meth:`~wx.SizerFlags.GetDefaultBorderFractional`                                Returns the border used by default, with fractional precision.
:meth:`~wx.SizerFlags.Left`                                                      Aligns the object to the left, similar for  ``Align(wxALIGN_LEFT)`` .
:meth:`~wx.SizerFlags.Proportion`                                                Sets the proportion of this :ref:`wx.SizerFlags`  to `proportion`.
:meth:`~wx.SizerFlags.ReserveSpaceEvenIfHidden`                                  Set the  ``RESERVE_SPACE_EVEN_IF_HIDDEN``   flag.
:meth:`~wx.SizerFlags.Right`                                                     Aligns the object to the right, similar for  ``Align(wxALIGN_RIGHT)`` .
:meth:`~wx.SizerFlags.Shaped`                                                    Set the  ``_SHAPED``   flag which indicates that the elements should always keep the fixed width to height ratio equal to its original value.
:meth:`~wx.SizerFlags.Top`                                                       Aligns the object to the top, similar for  ``Align(wxALIGN_TOP)`` .
:meth:`~wx.SizerFlags.TripleBorder`                                              Sets the border in the given `direction`  having thrice the default border size.
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.SizerFlags(object)

   **Possible constructors**::

       SizerFlags(proportion=0)
       
   
   Container for sizer items flags providing readable names for them.



   .. method:: __init__(self, proportion=0)

      Creates the :ref:`wx.Sizer`  with the proportion specified by `proportion`.                  


      :param `proportion`: 
      :type `proportion`: int







   .. method:: Align(self, alignment)

      Sets the alignment of this :ref:`wx.SizerFlags`  to `align`.                  

      This method replaces the previously set alignment with the specified one. 




      :param `alignment`: Combination of  ``ALIGN_XXX``   bit masks.  
      :type `alignment`: int






      :rtype: :ref:`wx.SizerFlags`



                  



      .. seealso:: :ref:`wx.Top`, :ref:`wx.Left`, :ref:`wx.Right`, :ref:`wx.Bottom`, :ref:`wx.Centre`    








   .. method:: Border(self, *args, **kw)



      |overload| Overloaded Implementations:

      :html:`<hr class="overloadsep" /><br />`

      
      **Border** `(self, direction, borderinpixels)`
      
      Sets the :ref:`wx.SizerFlags`  to have a border of a number of pixels specified by `borderinpixels`  with the directions specified by `direction`.                  
      
      Prefer to use the overload below or :meth:`DoubleBorder`   or :meth:`TripleBorder`   versions instead of hard-coding the border value in pixels to avoid too small borders on devices with high ``DPI`` displays.                  
      
      
      :param `direction`: 
      :type `direction`: int
      :param `borderinpixels`: 
      :type `borderinpixels`: int
      
      
      
      
      :rtype: :ref:`wx.SizerFlags`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **Border** `(self, direction=ALL)`
      
      Sets the :ref:`wx.SizerFlags`  to have a border with size as returned by :meth:`GetDefaultBorder` .                  
      
      
      
      
      :param `direction`: Direction(s) to apply the border in.   
      :type `direction`: int
      
      
      
      
      
      
      :rtype: :ref:`wx.SizerFlags`
      
      
      
                        
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: Bottom(self)

      Aligns the object to the bottom, similar for  ``Align(wxALIGN_BOTTOM)`` .                   

      Unlike :meth:`Align` , this method doesn't change the horizontal alignment of the item.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: Center(self)

      Sets the object of the :ref:`wx.SizerFlags`  to center itself in the area it is given.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: CenterHorizontal(self)

      Same as :meth:`CentreHorizontal` .                  

                

      :rtype: :ref:`wx.SizerFlags`







      .. versionadded:: 4.1/wxWidgets-3.1.0  
     








   .. method:: CenterVertical(self)

      Same as :meth:`CentreVertical` .                  

                

      :rtype: :ref:`wx.SizerFlags`







      .. versionadded:: 4.1/wxWidgets-3.1.0  
     








   .. method:: Centre(self)

      :ref:`wx.Center`  for people with the other dialect of English.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: CentreHorizontal(self)

      Center an item only in horizontal direction.                  

      This is mostly useful for ``2D`` sizers as for the ``1D`` ones it is shorter to just use :ref:`wx.Centre`  as the alignment is only used in one direction with them anyhow. For ``2D`` sizers, centering an item in one direction is quite different from centering it in both directions however. 

      Note that, unlike :meth:`Align` , this method doesn't change the vertical alignment. 

                

      :rtype: :ref:`wx.SizerFlags`







      .. versionadded:: 4.1/wxWidgets-3.1.0  
     







      .. seealso:: :meth:`CentreVertical`   








   .. method:: CentreVertical(self)

      Center an item only in vertical direction.                  

      The remarks in :meth:`CentreHorizontal`   documentation also apply to this function. 

      Note that, unlike :meth:`Align` , this method doesn't change the horizontal alignment. 

                

      :rtype: :ref:`wx.SizerFlags`







      .. versionadded:: 4.1/wxWidgets-3.1.0  
     








   .. staticmethod:: DisableConsistencyChecks()

      Globally disable checks for sizer flag consistency in debug builds.                  

      By default, sizer classes such as :ref:`wx.BoxSizer`  and :ref:`wx.FlexGridSizer`  assert when passed invalid flags, even though doing this usually doesn't result in any catastrophic consequences and the invalid flags are simply ignored later. Due to this, and the fact that these checks were only added in wxWidgets 3.1, existing code may run into multiple asserts warning about incorrect sizer flags use. Using this function provides a temporary solution for avoiding such asserts when upgrading to wxWidgets 3.1 from a previous version and will prevent such checks from being done. 

      Please do note that correcting the code by removing the invalid flags remains a much better solution as these asserts may be very helpful to understand why some code using sizer flags doesn't work as expected, so using this function, especially permanently, rather than a temporary workaround, is `not`  recommended. 

      Notice that the same effect as calling this function can be achieved by setting the environment variable  ``WXSUPPRESS_SIZER_FLAGS_CHECK``   to any value. 

                 



      .. versionadded:: 4.1/wxWidgets-3.1.6  
     








   .. method:: DoubleBorder(self, direction=ALL)

      Sets the border in the given `direction`  having twice the default border size.                  


      :param `direction`: 
      :type `direction`: int




      :rtype: :ref:`wx.SizerFlags`








   .. method:: DoubleHorzBorder(self)

      Sets the border in left and right directions having twice the default border size.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: Expand(self)

      Sets the object of the :ref:`wx.SizerFlags`  to expand to fill as much area as it can.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: FixedMinSize(self)

      Set the  ``FIXED_MINSIZE``   flag which indicates that the initial size of the window should be also set as its minimal size.                   

      :rtype: :ref:`wx.SizerFlags`








   .. staticmethod:: GetDefaultBorder()

      Returns the border used by default in :ref:`wx.Border`  method.                  

      This value is scaled appropriately for the current ``DPI`` on the systems where physical pixel values are used for the control positions and sizes, i.e. not with wxGTK or wxOSX. 

                

      :rtype: `int`







      .. seealso:: :meth:`GetDefaultBorderFractional`     








   .. staticmethod:: GetDefaultBorderFractional()

      Returns the border used by default, with fractional precision.                  

      For example when the border is scaled to a non-integer ``DPI``. 

                

      :rtype: `float`







      .. versionadded:: 4.1/wxWidgets-3.1.4  
     







      .. seealso:: :meth:`GetDefaultBorder`   








   .. method:: Left(self)

      Aligns the object to the left, similar for  ``Align(wxALIGN_LEFT)`` .                   

      Unlike :meth:`Align` , this method doesn't change the vertical alignment of the item.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: Proportion(self, proportion)

      Sets the proportion of this :ref:`wx.SizerFlags`  to `proportion`.                  


      :param `proportion`: 
      :type `proportion`: int




      :rtype: :ref:`wx.SizerFlags`








   .. method:: ReserveSpaceEvenIfHidden(self)

      Set the  ``RESERVE_SPACE_EVEN_IF_HIDDEN``   flag.                   

      Normally Sizers don't allocate space for hidden windows or other items. This flag overrides this behaviour so that sufficient space is allocated for the window even if it isn't visible. This makes it possible to dynamically show and hide controls without resizing parent dialog, for example. 

                

      :rtype: :ref:`wx.SizerFlags`







      .. versionadded:: 2.8.8 
     








   .. method:: Right(self)

      Aligns the object to the right, similar for  ``Align(wxALIGN_RIGHT)`` .                   

      Unlike :meth:`Align` , this method doesn't change the vertical alignment of the item.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: Shaped(self)

      Set the  ``_SHAPED``   flag which indicates that the elements should always keep the fixed width to height ratio equal to its original value.                   

      :rtype: :ref:`wx.SizerFlags`








   .. method:: Top(self)

      Aligns the object to the top, similar for  ``Align(wxALIGN_TOP)`` .                   

      Unlike :meth:`Align` , this method doesn't change the horizontal alignment of the item.                  

      :rtype: :ref:`wx.SizerFlags`








   .. method:: TripleBorder(self, direction=ALL)

      Sets the border in the given `direction`  having thrice the default border size.                  


      :param `direction`: 
      :type `direction`: int




      :rtype: :ref:`wx.SizerFlags`







