.. 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.SpinCtrlDouble:

==========================================================================================================================================
|phoenix_title|  **wx.SpinCtrlDouble**
==========================================================================================================================================

:ref:`wx.SpinCtrlDouble`  combines :ref:`wx.TextCtrl`  and :ref:`wx.SpinButton`  in one control and displays a real number.          

(:ref:`wx.SpinCtrl`  displays an integer.) 

^^ 



.. _SpinCtrlDouble-styles:

|styles| Window Styles
================================

This class supports the following styles: 

  

- ``wx.SP_ARROW_KEYS``: The user can use arrow keys to change the value.  
- ``wx.SP_WRAP``: The value wraps at the minimum and maximum. ^^ 

^^






.. _SpinCtrlDouble-events:

|events| Events Emitted by this Class
=====================================

Handlers bound for the following event types will receive a :ref:`wx.SpinDoubleEvent` parameter.


- EVT_SPINCTRLDOUBLE: Generated whenever the numeric value of the spin control is changed, that is, when the up/down spin button is clicked, when ``ENTER`` is pressed, or the control loses focus and the new value is different from the last. See :ref:`wx.SpinDoubleEvent`. ^^ 






         



.. seealso:: :ref:`wx.SpinButton`, :ref:`wx.SpinCtrl`, :ref:`wx.Control`    







|

|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>SpinCtrlDouble</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.SpinCtrlDouble_inheritance.png" alt="Inheritance diagram of SpinCtrlDouble" 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.SpinCtrlDouble.html" title="wx.SpinCtrlDouble" alt="" coords="37,315,180,344"/> <area shape="rect" id="node2" href="wx.Control.html" title="wx.Control" alt="" coords="63,237,155,267"/> <area shape="rect" id="node3" href="wx.Window.html" title="wx.Window" alt="" coords="60,160,157,189"/> <area shape="rect" id="node4" href="wx.EvtHandler.html" title="wx.EvtHandler" alt="" coords="50,83,167,112"/> <area shape="rect" id="node5" href="wx.Object.html" title="wx.Object" alt="" coords="5,5,92,35"/> <area shape="rect" id="node6" href="wx.Trackable.html" title="wx.Trackable" alt="" coords="117,5,223,35"/> </map> 
   </p>
   </div>

|


|appearance| Control Appearance
===============================

|

.. figure:: _static/images/widgets/fullsize/wxmsw/wx.spinctrldouble.png
   :alt: wxMSW
   :figclass: floatleft

   **wxMSW**


.. figure:: _static/images/widgets/fullsize/wxmac/wx.spinctrldouble.png
   :alt: wxMAC
   :figclass: floatright

   **wxMAC**


.. figure:: _static/images/widgets/fullsize/wxgtk/wx.spinctrldouble.png
   :alt: wxGTK
   :figclass: floatcenter

   **wxGTK**


|


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

================================================================================ ================================================================================
:meth:`~wx.SpinCtrlDouble.__init__`                                              Default constructor.
:meth:`~wx.SpinCtrlDouble.Create`                                                Creation function called by the spin control constructor.
:meth:`~wx.SpinCtrlDouble.GetClassDefaultAttributes`                             
:meth:`~wx.SpinCtrlDouble.GetDigits`                                             Gets precision of the value of the spin control.
:meth:`~wx.SpinCtrlDouble.GetIncrement`                                          Gets the increment value.
:meth:`~wx.SpinCtrlDouble.GetMax`                                                Gets maximal allowable value.
:meth:`~wx.SpinCtrlDouble.GetMin`                                                Gets minimal allowable value.
:meth:`~wx.SpinCtrlDouble.GetRange`                                              
:meth:`~wx.SpinCtrlDouble.GetTextValue`                                          Returns the text in the text entry part of the control.
:meth:`~wx.SpinCtrlDouble.GetValue`                                              Gets the value of the spin control.
:meth:`~wx.SpinCtrlDouble.SetDigits`                                             Sets precision of the value of the spin control.
:meth:`~wx.SpinCtrlDouble.SetIncrement`                                          Sets the increment value.
:meth:`~wx.SpinCtrlDouble.SetMax`                                                
:meth:`~wx.SpinCtrlDouble.SetMin`                                                
:meth:`~wx.SpinCtrlDouble.SetRange`                                              Sets range of allowable values.
:meth:`~wx.SpinCtrlDouble.SetValue`                                              Sets the value of the spin control.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.SpinCtrlDouble.Digits`                                                See :meth:`~wx.SpinCtrlDouble.GetDigits` and :meth:`~wx.SpinCtrlDouble.SetDigits`
:attr:`~wx.SpinCtrlDouble.Increment`                                             See :meth:`~wx.SpinCtrlDouble.GetIncrement` and :meth:`~wx.SpinCtrlDouble.SetIncrement`
:attr:`~wx.SpinCtrlDouble.Max`                                                   See :meth:`~wx.SpinCtrlDouble.GetMax` and :meth:`~wx.SpinCtrlDouble.SetMax`
:attr:`~wx.SpinCtrlDouble.Min`                                                   See :meth:`~wx.SpinCtrlDouble.GetMin` and :meth:`~wx.SpinCtrlDouble.SetMin`
:attr:`~wx.SpinCtrlDouble.Range`                                                 See :meth:`~wx.SpinCtrlDouble.GetRange`
:attr:`~wx.SpinCtrlDouble.TextValue`                                             See :meth:`~wx.SpinCtrlDouble.GetTextValue`
:attr:`~wx.SpinCtrlDouble.Value`                                                 See :meth:`~wx.SpinCtrlDouble.GetValue` and :meth:`~wx.SpinCtrlDouble.SetValue`
================================================================================ ================================================================================


|


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


.. class:: wx.SpinCtrlDouble(Control)

   **Possible constructors**::

       SpinCtrlDouble()
       
       SpinCtrlDouble(parent, id=-1, value=EmptyString, pos=DefaultPosition,
                      size=DefaultSize, style=SP_ARROW_KEYS, min=0, max=100, initial=0, inc=1,
                      name=T("wxSpinCtrlDouble"))
       
   
   SpinCtrlDouble combines TextCtrl and SpinButton in one control
   and displays a real number.



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



      |overload| Overloaded Implementations:

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

      
      **__init__** `(self)`
      
      Default constructor.                   
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **__init__** `(self, parent, id=-1, value=EmptyString, pos=DefaultPosition, size=DefaultSize, style=SP_ARROW_KEYS, min=0, max=100, initial=0, inc=1, name=T("wxSpinCtrlDouble"))`
      
      Constructor, creating and showing a spin control.                  
      
      If `value`  is non-empty, it will be shown in the text entry part of the control and if it has numeric value, the initial numeric value of the control, as returned by :meth:`GetValue`   will also be determined by it instead of by `initial`. Hence, it only makes sense to specify `initial`  if `value`  is an empty string or is not convertible to a number, otherwise `initial`  is simply ignored and the number specified by `value`  is used. 
      
      
      
      
      :param `parent`: Parent window. Must not be ``None``.   
      :type `parent`: wx.Window
      :param `id`: Window identifier. The value ``wx.ID_ANY`` indicates a default value.   
      :type `id`: wx.WindowID
      :param `value`: Default value (as text).   
      :type `value`: string
      :param `pos`: Window position. If :ref:`wx.DefaultPosition`  is specified then a default position is chosen.   
      :type `pos`: wx.Point
      :param `size`: Window size. If :ref:`wx.DefaultSize`  is specified then a default size is chosen.   
      :type `size`: wx.Size
      :param `style`: Window style. See :ref:`wx.SpinButton`.   
      :type `style`: long
      :param `min`: Minimal value.   
      :type `min`: float
      :param `max`: Maximal value.   
      :type `max`: float
      :param `initial`: Initial value.   
      :type `initial`: float
      :param `inc`: Increment value.   
      :type `inc`: float
      :param `name`: Window name.  
      :type `name`: string
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      `inc`. If necessary, default precision can be adjusted by call to :meth:`SetDigits` . 
      
                       
      
      
      
      .. seealso:: :meth:`Create`     
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: Create(self, parent, id=ID_ANY, value=EmptyString, pos=DefaultPosition, size=DefaultSize, style=SP_ARROW_KEYS, min=0, max=100, initial=0, inc=1, name="wxSpinCtrlDouble")

      Creation function called by the spin control constructor.                  

      See :ref:`wx.SpinCtrlDouble`  for details.                  


      :param `parent`: 
      :type `parent`: wx.Window
      :param `id`: 
      :type `id`: wx.WindowID
      :param `value`: 
      :type `value`: string
      :param `pos`: 
      :type `pos`: wx.Point
      :param `size`: 
      :type `size`: wx.Size
      :param `style`: 
      :type `style`: long
      :param `min`: 
      :type `min`: float
      :param `max`: 
      :type `max`: float
      :param `initial`: 
      :type `initial`: float
      :param `inc`: 
      :type `inc`: float
      :param `name`: 
      :type `name`: string




      :rtype: `bool`








   .. staticmethod:: GetClassDefaultAttributes(variant=WINDOW_VARIANT_NORMAL)




      :param `variant`: 
      :type `variant`: wx.WindowVariant




      :rtype: :ref:`wx.VisualAttributes`








   .. method:: GetDigits(self)

      Gets precision of the value of the spin control.                  

      :rtype: `int`








   .. method:: GetIncrement(self)

      Gets the increment value.                  

      :rtype: `float`








   .. method:: GetMax(self)

      Gets maximal allowable value.                  

      :rtype: `float`








   .. method:: GetMin(self)

      Gets minimal allowable value.                  

      :rtype: `float`








   .. method:: GetRange(self)




   .. method:: GetTextValue(self)

      Returns the text in the text entry part of the control.                  

                

      :rtype: `string`







      .. versionadded:: 4.1/wxWidgets-3.1.6  
     








   .. method:: GetValue(self)

      Gets the value of the spin control.                  

      :rtype: `float`








   .. method:: SetDigits(self, digits)

      Sets precision of the value of the spin control.                  

      Up to 20 digits are allowed after the decimal point.                  


      :param `digits`: 
      :type `digits`: int







   .. method:: SetIncrement(self, inc)

      Sets the increment value.                  

      Using this method changes the number of digits used by the control to at least match the value of `inc`, e.g. using the increment of  ``0.01``   sets the number of digits to 2 if it had been less than 2 before. However it doesn't change the number of digits if it had been already high enough. 

      In any case, you may call :meth:`SetDigits`   explicitly to override the automatic determination of the number of digits.                  


      :param `inc`: 
      :type `inc`: float







   .. method:: SetMax(self, maxVal)




   .. method:: SetMin(self, minVal)




   .. method:: SetRange(self, minVal, maxVal)

      Sets range of allowable values.                  


      :param `minVal`: 
      :type `minVal`: float
      :param `maxVal`: 
      :type `maxVal`: float







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



      |overload| Overloaded Implementations:

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

      
      **SetValue** `(self, text)`
      
      Sets the value of the spin control.                  
      
      It is recommended to use the overload taking a float value instead. If `text`  doesn't represent a valid number, it may not be shown in the text part of the control at all (only empty string is guaranteed to be supported under all platforms) and the numeric value will be changed to :meth:`GetMin` . 
      
      Notice that, unlike :meth:`wx.TextCtrl.SetValue` , but like most of the other setter methods in wxWidgets, calling this method does not generate any events as events are only generated for the user actions.                  
      
      
      :param `text`: 
      :type `text`: string
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **SetValue** `(self, value)`
      
      Sets the value of the spin control.                  
      
      Calling this method doesn't generate any  ``wxEVT_SPINCTRLDOUBLE``   events.                   
      
      
      :param `value`: 
      :type `value`: float
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. attribute:: Digits

      See :meth:`~wx.SpinCtrlDouble.GetDigits` and :meth:`~wx.SpinCtrlDouble.SetDigits`


   .. attribute:: Increment

      See :meth:`~wx.SpinCtrlDouble.GetIncrement` and :meth:`~wx.SpinCtrlDouble.SetIncrement`


   .. attribute:: Max

      See :meth:`~wx.SpinCtrlDouble.GetMax` and :meth:`~wx.SpinCtrlDouble.SetMax`


   .. attribute:: Min

      See :meth:`~wx.SpinCtrlDouble.GetMin` and :meth:`~wx.SpinCtrlDouble.SetMin`


   .. attribute:: Range

      See :meth:`~wx.SpinCtrlDouble.GetRange`


   .. attribute:: TextValue

      See :meth:`~wx.SpinCtrlDouble.GetTextValue`


   .. attribute:: Value

      See :meth:`~wx.SpinCtrlDouble.GetValue` and :meth:`~wx.SpinCtrlDouble.SetValue`

