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

==========================================================================================================================================
|phoenix_title|  **wx.Slider**
==========================================================================================================================================

A slider is a control with a handle which can be pulled back and forth to change the value.          

On Windows, the track bar control is used. 

On GTK+, tick marks are only available for version 2.16 and later. 

Slider generates the same events as :ref:`wx.ScrollBar`  but in practice the most convenient way to process :ref:`wx.Slider`  updates is by handling the slider-specific  ``wxEVT_SLIDER``   event which carries  :ref:`wx.CommandEvent`  containing just the latest slider position. 





.. _Slider-styles:

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

This class supports the following styles: 

  

- ``wx.SL_HORIZONTAL``: Displays the slider horizontally (this is the default).  
- ``wx.SL_VERTICAL``: Displays the slider vertically.  
- ``wx.SL_AUTOTICKS``: Displays tick marks (Windows, GTK+ 2.16 and later).  
- ``wx.SL_MIN_MAX_LABELS``: Displays minimum, maximum labels (new since wxWidgets 2.9.1).  
- ``wx.SL_VALUE_LABEL``: Displays value label (new since wxWidgets 2.9.1).  
- ``wx.SL_LABELS``: Displays minimum, maximum and value labels (same as ``wx.SL_VALUE_LABEL`` and ``wx.SL_MIN_MAX_LABELS`` together).  
- ``wx.SL_LEFT``: Displays ticks on the left and forces the slider to be vertical (Windows and GTK+ 3 only).  
- ``wx.SL_RIGHT``: Displays ticks on the right and forces the slider to be vertical.  
- ``wx.SL_TOP``: Displays ticks on the top (Windows and GTK+ 3 only).  
- ``wx.SL_BOTTOM``: Displays ticks on the bottom (this is the default).  
- ``wx.SL_BOTH``: Displays ticks on both sides of the slider. Windows only.  
- ``wx.SL_SELRANGE``: Displays a highlighted selection range. Windows only.  
- ``wx.SL_INVERSE``: Inverses the minimum and maximum endpoints on the slider. Not compatible with ``wx.SL_SELRANGE``.  

Notice that
 ``SL_LEFT`` ,   ``SL_TOP`` ,   ``SL_RIGHT``   and   ``SL_BOTTOM``   specify the position of the slider ticks and that the slider labels, if any, are positioned on the opposite side. So, to have a label on the left side of a vertical slider,  ``wx.SL_RIGHT``  must be used (or none of these styles at all should be specified as left and top are default positions for the vertical and horizontal sliders respectively). 







.. _Slider-events:

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

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


- EVT_SCROLL: Process all scroll events.  
- EVT_SCROLL_TOP: Process  ``wxEVT_SCROLL_TOP``   scroll-to-top events (minimum position).   
- EVT_SCROLL_BOTTOM: Process  ``wxEVT_SCROLL_BOTTOM``   scroll-to-bottom events (maximum position).   
- EVT_SCROLL_LINEUP: Process  ``wxEVT_SCROLL_LINEUP``   line up events.   
- EVT_SCROLL_LINEDOWN: Process  ``wxEVT_SCROLL_LINEDOWN``   line down events.   
- EVT_SCROLL_PAGEUP: Process  ``wxEVT_SCROLL_PAGEUP``   page up events.   
- EVT_SCROLL_PAGEDOWN: Process  ``wxEVT_SCROLL_PAGEDOWN``   page down events.   
- EVT_SCROLL_THUMBTRACK: Process  ``wxEVT_SCROLL_THUMBTRACK``   thumbtrack events (frequent events sent as the user drags the thumbtrack).   
- EVT_SCROLL_THUMBRELEASE: Process  ``wxEVT_SCROLL_THUMBRELEASE``   thumb release events.   
- EVT_SCROLL_CHANGED: Process  ``wxEVT_SCROLL_CHANGED``   end of scrolling events (MSW only).   
- EVT_COMMAND_SCROLL: Process all scroll events.  
- EVT_COMMAND_SCROLL_TOP: Process  ``wxEVT_SCROLL_TOP``   scroll-to-top events (minimum position).   
- EVT_COMMAND_SCROLL_BOTTOM: Process  ``wxEVT_SCROLL_BOTTOM``   scroll-to-bottom events (maximum position).   
- EVT_COMMAND_SCROLL_LINEUP: Process  ``wxEVT_SCROLL_LINEUP``   line up events.   
- EVT_COMMAND_SCROLL_LINEDOWN: Process  ``wxEVT_SCROLL_LINEDOWN``   line down events.   
- EVT_COMMAND_SCROLL_PAGEUP: Process  ``wxEVT_SCROLL_PAGEUP``   page up events.   
- EVT_COMMAND_SCROLL_PAGEDOWN: Process  ``wxEVT_SCROLL_PAGEDOWN``   page down events.   
- EVT_COMMAND_SCROLL_THUMBTRACK: Process  ``wxEVT_SCROLL_THUMBTRACK``   thumbtrack events (frequent events sent as the user drags the thumbtrack).   
- EVT_COMMAND_SCROLL_THUMBRELEASE: Process  ``wxEVT_SCROLL_THUMBRELEASE``   thumb release events.   
- EVT_COMMAND_SCROLL_CHANGED: Process  ``wxEVT_SCROLL_CHANGED``   end of scrolling events (MSW only).   
- EVT_SLIDER: Process  ``wxEVT_SLIDER``   which is generated after any change of  :ref:`wx.Slider`  position in addition to one of the events above. Notice that the handler of this event receives a :ref:`wx.CommandEvent`  as argument and not :ref:`wx.ScrollEvent`, as all the other handlers.  






|phoenix_title| The difference between ``EVT_SCROLL_THUMBRELEASE`` and ``EVT_SCROLL_CHANGED``
=============================================================================================

The ``EVT_SCROLL_THUMBRELEASE`` event is only emitted when actually dragging the thumb using the mouse and releasing it (This ``EVT_SCROLL_THUMBRELEASE`` event is also followed by an ``EVT_SCROLL_CHANGED`` event). The ``EVT_SCROLL_CHANGED`` event also occurs when using the keyboard to change the thumb position, and when clicking next to the thumb (In all these cases the ``EVT_SCROLL_THUMBRELEASE`` event does not happen). In short, the ``EVT_SCROLL_CHANGED`` event is triggered when scrolling/ moving has finished independently of the way it had started. Please see the :ref:`Widgets Sample <widgets sample>`  ("Slider" page) to see the difference between ``EVT_SCROLL_THUMBRELEASE`` and ``EVT_SCROLL_CHANGED`` in action.   



.. seealso:: :ref:`Events and Event Handling <events and event handling>`, :ref:`wx.ScrollBar`    







|

|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>Slider</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.Slider_inheritance.png" alt="Inheritance diagram of Slider" 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.Slider.html" title="wx.Slider" alt="" coords="67,315,150,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.slider.png
   :alt: wxMSW
   :figclass: floatleft

   **wxMSW**


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

   **wxMAC**


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

   **wxGTK**


|


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

================================================================================ ================================================================================
:meth:`~wx.Slider.__init__`                                                      Default constructor.
:meth:`~wx.Slider.ClearSel`                                                      Clears the selection, for a slider with the ``wx.SL_SELRANGE``  style.
:meth:`~wx.Slider.ClearTicks`                                                    Clears the ticks.
:meth:`~wx.Slider.Create`                                                        Used for two-step slider construction.
:meth:`~wx.Slider.GetClassDefaultAttributes`                                     
:meth:`~wx.Slider.GetLineSize`                                                   Returns the line size.
:meth:`~wx.Slider.GetMax`                                                        Gets the maximum slider value.
:meth:`~wx.Slider.GetMin`                                                        Gets the minimum slider value.
:meth:`~wx.Slider.GetPageSize`                                                   Returns the page size.
:meth:`~wx.Slider.GetRange`                                                      
:meth:`~wx.Slider.GetSelEnd`                                                     Returns the selection end point.
:meth:`~wx.Slider.GetSelStart`                                                   Returns the selection start point.
:meth:`~wx.Slider.GetThumbLength`                                                Returns the thumb length.
:meth:`~wx.Slider.GetTickFreq`                                                   Returns the tick frequency.
:meth:`~wx.Slider.GetValue`                                                      Gets the current slider value.
:meth:`~wx.Slider.SetLineSize`                                                   Sets the line size for the slider.
:meth:`~wx.Slider.SetMax`                                                        Sets the maximum slider value.
:meth:`~wx.Slider.SetMin`                                                        Sets the minimum slider value.
:meth:`~wx.Slider.SetPageSize`                                                   Sets the page size for the slider.
:meth:`~wx.Slider.SetRange`                                                      Sets the minimum and maximum slider values.
:meth:`~wx.Slider.SetSelection`                                                  Sets the selection.
:meth:`~wx.Slider.SetThumbLength`                                                Sets the slider thumb length.
:meth:`~wx.Slider.SetTick`                                                       Sets a tick position.
:meth:`~wx.Slider.SetTickFreq`                                                   Sets the tick mark frequency and position.
:meth:`~wx.Slider.SetValue`                                                      Sets the slider position.
================================================================================ ================================================================================


|


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

================================================================================ ================================================================================
:attr:`~wx.Slider.LineSize`                                                      See :meth:`~wx.Slider.GetLineSize` and :meth:`~wx.Slider.SetLineSize`
:attr:`~wx.Slider.Max`                                                           See :meth:`~wx.Slider.GetMax` and :meth:`~wx.Slider.SetMax`
:attr:`~wx.Slider.Min`                                                           See :meth:`~wx.Slider.GetMin` and :meth:`~wx.Slider.SetMin`
:attr:`~wx.Slider.PageSize`                                                      See :meth:`~wx.Slider.GetPageSize` and :meth:`~wx.Slider.SetPageSize`
:attr:`~wx.Slider.Range`                                                         See :meth:`~wx.Slider.GetRange`
:attr:`~wx.Slider.SelEnd`                                                        See :meth:`~wx.Slider.GetSelEnd`
:attr:`~wx.Slider.SelStart`                                                      See :meth:`~wx.Slider.GetSelStart`
:attr:`~wx.Slider.ThumbLength`                                                   See :meth:`~wx.Slider.GetThumbLength` and :meth:`~wx.Slider.SetThumbLength`
:attr:`~wx.Slider.TickFreq`                                                      See :meth:`~wx.Slider.GetTickFreq` and :meth:`~wx.Slider.SetTickFreq`
:attr:`~wx.Slider.Value`                                                         See :meth:`~wx.Slider.GetValue` and :meth:`~wx.Slider.SetValue`
================================================================================ ================================================================================


|


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


.. class:: wx.Slider(Control)

   **Possible constructors**::

       Slider()
       
       Slider(parent, id=ID_ANY, value=0, minValue=0, maxValue=100,
              pos=DefaultPosition, size=DefaultSize, style=SL_HORIZONTAL,
              validator=DefaultValidator, name=SliderNameStr)
       
   
   A slider is a control with a handle which can be pulled back and forth
   to change the value.



   .. 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=ID_ANY, value=0, minValue=0, maxValue=100, pos=DefaultPosition, size=DefaultSize, style=SL_HORIZONTAL, validator=DefaultValidator, name=SliderNameStr)`
      
      Constructor, creating and showing a slider.                  
      
      
      
      
      :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`: Initial position for the slider.   
      :type `value`: int
      :param `minValue`: Minimum slider position.   
      :type `minValue`: int
      :param `maxValue`: Maximum slider position.   
      :type `maxValue`: int
      :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, which is typically appropriate in the transverse slider direction, but is just fixed 100 (DPI-independent) pixels in the primary direction (i.e. vertical for ``SL_VERTICAL``  sliders or horizontal for ``SL_HORIZONTAL``  ones), so it may be preferable to specify it explicitly. Conversely, when using non-default size, it's usually best to use  ``-1``   for the transverse size component, meaning that the default should be used, as the appropriate value depends on the platform and theme.    
      :type `size`: wx.Size
      :param `style`: Window style. See :ref:`wx.Slider`.   
      :type `style`: long
      :param `validator`: Window validator.   
      :type `validator`: wx.Validator
      :param `name`: Window name.  
      :type `name`: string
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
                        
      
      
      
      .. seealso:: :meth:`Create` , :ref:`wx.Validator`    
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: ClearSel(self)

      Clears the selection, for a slider with the ``wx.SL_SELRANGE``  style.                  





      .. availability:: Only available for MSW.  








   .. method:: ClearTicks(self)

      Clears the ticks.                  





      .. availability:: Only available for MSW, GTK.  








   .. method:: Create(self, parent, id=ID_ANY, value=0, minValue=0, maxValue=100, point=DefaultPosition, size=DefaultSize, style=SL_HORIZONTAL, validator=DefaultValidator, name=SliderNameStr)

      Used for two-step slider construction.                  

      See :ref:`wx.Slider`  for further details.                  


      :param `parent`: 
      :type `parent`: wx.Window
      :param `id`: 
      :type `id`: wx.WindowID
      :param `value`: 
      :type `value`: int
      :param `minValue`: 
      :type `minValue`: int
      :param `maxValue`: 
      :type `maxValue`: int
      :param `point`: 
      :type `point`: wx.Point
      :param `size`: 
      :type `size`: wx.Size
      :param `style`: 
      :type `style`: long
      :param `validator`: 
      :type `validator`: wx.Validator
      :param `name`: 
      :type `name`: string




      :rtype: `bool`








   .. staticmethod:: GetClassDefaultAttributes(variant=WINDOW_VARIANT_NORMAL)




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




      :rtype: :ref:`wx.VisualAttributes`








   .. method:: GetLineSize(self)

      Returns the line size.                  

                

      :rtype: `int`







      .. seealso:: :meth:`SetLineSize`     








   .. method:: GetMax(self)

      Gets the maximum slider value.                  

                

      :rtype: `int`







      .. seealso:: :meth:`GetMin` , :meth:`SetRange`     








   .. method:: GetMin(self)

      Gets the minimum slider value.                  

                

      :rtype: `int`







      .. seealso:: :meth:`GetMin` , :meth:`SetRange`     








   .. method:: GetPageSize(self)

      Returns the page size.                  

                

      :rtype: `int`







      .. seealso:: :meth:`SetPageSize`     








   .. method:: GetRange(self)




   .. method:: GetSelEnd(self)

      Returns the selection end point.                  



                

      :rtype: `int`







      .. availability:: Only available for MSW.  







      .. seealso:: :meth:`GetSelStart` , :meth:`SetSelection`     








   .. method:: GetSelStart(self)

      Returns the selection start point.                  



                

      :rtype: `int`







      .. availability:: Only available for MSW.  







      .. seealso:: :meth:`GetSelEnd` , :meth:`SetSelection`     








   .. method:: GetThumbLength(self)

      Returns the thumb length.                  



                

      :rtype: `int`







      .. availability:: Only available for MSW.  







      .. seealso:: :meth:`SetThumbLength`     








   .. method:: GetTickFreq(self)

      Returns the tick frequency.                  



                

      :rtype: `int`







      .. availability:: Only available for MSW, GTK.  







      .. seealso:: :meth:`SetTickFreq`     








   .. method:: GetValue(self)

      Gets the current slider value.                  

                

      :rtype: `int`







      .. seealso:: :meth:`GetMin` , :meth:`GetMax` , :meth:`SetValue`     








   .. method:: SetLineSize(self, lineSize)

      Sets the line size for the slider.                  




      :param `lineSize`: The number of steps the slider moves when the user moves it up or down a line.  
      :type `lineSize`: int




                  



      .. seealso:: :meth:`GetLineSize`     








   .. method:: SetMax(self, maxValue)

      Sets the maximum slider value.                  




      :param `maxValue`: The new top end of the slider range.  
      :type `maxValue`: int




                  



      .. seealso:: :meth:`GetMax` , :meth:`SetRange`     








   .. method:: SetMin(self, minValue)

      Sets the minimum slider value.                  




      :param `minValue`: The new bottom end of the slider range.  
      :type `minValue`: int




                  



      .. seealso:: :meth:`GetMin` , :meth:`SetRange`     








   .. method:: SetPageSize(self, pageSize)

      Sets the page size for the slider.                  




      :param `pageSize`: The number of steps the slider moves when the user pages up or down.  
      :type `pageSize`: int




                  



      .. seealso:: :meth:`GetPageSize`     








   .. method:: SetRange(self, minValue, maxValue)

      Sets the minimum and maximum slider values.                  

                


      :param `minValue`: 
      :type `minValue`: int
      :param `maxValue`: 
      :type `maxValue`: int






      .. seealso:: :meth:`GetMin` , :meth:`GetMax`     








   .. method:: SetSelection(self, startPos, endPos)

      Sets the selection.                  




      :param `startPos`: The selection start position.   
      :type `startPos`: int
      :param `endPos`: The selection end position.  
      :type `endPos`: int






      MSW port.  

                 



      .. availability:: Only available for MSW.  







      .. seealso:: :meth:`GetSelStart` , :meth:`GetSelEnd`     








   .. method:: SetThumbLength(self, len)

      Sets the slider thumb length.                  




      :param `len`: The thumb length.  
      :type `len`: int




      MSW port.  

                 



      .. availability:: Only available for MSW.  







      .. seealso:: :meth:`GetThumbLength`     








   .. method:: SetTick(self, tickPos)

      Sets a tick position.                  




      :param `tickPos`: The tick position.  
      :type `tickPos`: int




      MSW, GTK ports.  

                 



      .. availability:: Only available for MSW, GTK.  







      .. seealso:: :meth:`SetTickFreq`     








   .. method:: SetTickFreq(self, freq)

      Sets the tick mark frequency and position.                  




      :param `freq`: Frequency. For example, if the frequency is set to two, a tick mark is displayed for every other increment in the slider's range.  
      :type `freq`: int




      MSW, GTK ports.  

                 



      .. availability:: Only available for MSW, GTK.  







      .. seealso:: :meth:`GetTickFreq`     








   .. method:: SetValue(self, value)

      Sets the slider position.                  




      :param `value`: The slider position.   
      :type `value`: int




                  





   .. attribute:: LineSize

      See :meth:`~wx.Slider.GetLineSize` and :meth:`~wx.Slider.SetLineSize`


   .. attribute:: Max

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


   .. attribute:: Min

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


   .. attribute:: PageSize

      See :meth:`~wx.Slider.GetPageSize` and :meth:`~wx.Slider.SetPageSize`


   .. attribute:: Range

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


   .. attribute:: SelEnd

      See :meth:`~wx.Slider.GetSelEnd`


   .. attribute:: SelStart

      See :meth:`~wx.Slider.GetSelStart`


   .. attribute:: ThumbLength

      See :meth:`~wx.Slider.GetThumbLength` and :meth:`~wx.Slider.SetThumbLength`


   .. attribute:: TickFreq

      See :meth:`~wx.Slider.GetTickFreq` and :meth:`~wx.Slider.SetTickFreq`


   .. attribute:: Value

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

