.. 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 ` ("Slider" page) to see the difference between ``EVT_SCROLL_THUMBRELEASE`` and ``EVT_SCROLL_CHANGED`` in action. .. seealso:: :ref:`Events and Event Handling `, :ref:`wx.ScrollBar` | |class_hierarchy| Class Hierarchy ================================= .. raw:: html
Inheritance diagram for class Slider:
| |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:`

` **__init__** `(self)` Default constructor. :html:`

` **__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 `wx.DefaultPosition` is specified then a default position is chosen. :type `pos`: wx.Point :param `size`: Window size. If `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:`

` .. 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`