fsleyes_widgets.floatslider

This module provides two classes, the FloatSlider and SliderSpinPanel, which allow the user to modify floating point values.

class fsleyes_widgets.floatslider.FloatSlider(parent, value=None, minValue=None, maxValue=None, style=0)

Bases: wx._core.Panel

Floating point slider widget.

This class is an alternative to wx.Slider, which supports floating point numbers of any range. The desired range is transformed into the internal range \([-2^{31}, 2^{31-1}]\).

A EVT_SLIDER event is emitted whenever the user changes the value.

Create a FloatSlider.

The following style flags are available:

FS_MOUSEWHEEL If set, mouse wheel events on the slider will change the value.
FS_INTEGER If set, the slider will store an integer value instead of a floating point value.
Parameters:
  • parent – The wx parent object.
  • value – Initial slider value.
  • minValue – Minimum slider value.
  • maxValue – Maximum slider value.
  • style – A combination of FS_MOUSEWHEEL and FS_INTEGER.
__init__(parent, value=None, minValue=None, maxValue=None, style=0)

Create a FloatSlider.

The following style flags are available:

FS_MOUSEWHEEL If set, mouse wheel events on the slider will change the value.
FS_INTEGER If set, the slider will store an integer value instead of a floating point value.
Parameters:
  • parent – The wx parent object.
  • value – Initial slider value.
  • minValue – Minimum slider value.
  • maxValue – Maximum slider value.
  • style – A combination of FS_MOUSEWHEEL and FS_INTEGER.
GetRange()

Return a tuple containing the (minimum, maximum) slider values.

SetRange(minValue, maxValue)

Set the minimum/maximum slider values.

GetMin()

Return the minimum slider value.

GetMax()

Return the maximum slider value.

SetMin(minValue)

Set the minimum slider value.

SetMax(maxValue)

Set the maximum slider value.

SetValue(value)

Set the slider value. Returns True if the value changed, False otherwise.

GetValue()

Returns the slider value.

_FloatSlider__SetRange(minValue, maxValue)

Set the minimum/maximum slider values.

This logic is not in the public SetRange() method so we can overcome a chicken-and-egg problem in __init__() - SetValue() needs __realMin and __realMax to be set, but SetRange() needs to retrieve the value before setting __realMin and __realMax.

_FloatSlider__onMouseDown(ev)

Only called when running on GTK. Sets an internal dragging flag, and calls __mouseMove().

_FloatSlider__onMouseMove(ev)

Only called when running on GTK. Updates the slider value based on the mouse location.

_FloatSlider__onMouseUp(ev)

Only called when running on GTK. Clears the internal dragging flag.

_FloatSlider__onMouseWheel(ev)

If the FS_MOUSEWHEEL style is set, this method is called when the mouse wheel is spun over the slider widget.

Increases/decreases the slider value accordingly.

_FloatSlider__onSlider(ev)

Called when the child wx.Slider instance generates an EVT_SLIDER event. If the slider value has changed, the event is propagated upwards.

_FloatSlider__realToSlider(value)

Converts the given value from real space to slider space.

_FloatSlider__sliderToReal(value)

Converts the given value from slider space to real space.

__module__ = 'fsleyes_widgets.floatslider'
class fsleyes_widgets.floatslider.SliderSpinPanel(parent, value=None, minValue=None, maxValue=None, label=None, style=None, spinWidth=None)

Bases: wx._core.Panel

A panel containing a FloatSlider and a FloatSpinCtrl.

The slider and spinbox are linked such that changes to one are reflected in the other. The SliderSpinPanel class also provides the option to have the minimum/maximum limits displayed on either side of the slider/spinbox, and to have those limits editable via a NumberDialog .

Users of the SliderSpinPanel may wish to bind listeners to the following events:

Create a SliderSpinPanel.

The following style flags are available:

SSP_SHOW_LIMITS If set, the data range limits are shown alongside the slider/spin control widgets.
SSP_EDIT_LIMITS If set, and SSP_SHOW_LIMITS is also set, the data range limits are shown on buttons alongside the slider/spin control widgets.
SSP_MOUSEWHEEL If set, mouse wheel events on the slider/spin controls will change the value.
SSP_INTEGER If set, the SliderSpinPanel will store an integer value instead of floating point value.
Parameters:
__init__(parent, value=None, minValue=None, maxValue=None, label=None, style=None, spinWidth=None)

Create a SliderSpinPanel.

The following style flags are available:

SSP_SHOW_LIMITS If set, the data range limits are shown alongside the slider/spin control widgets.
SSP_EDIT_LIMITS If set, and SSP_SHOW_LIMITS is also set, the data range limits are shown on buttons alongside the slider/spin control widgets.
SSP_MOUSEWHEEL If set, mouse wheel events on the slider/spin controls will change the value.
SSP_INTEGER If set, the SliderSpinPanel will store an integer value instead of floating point value.
Parameters:
slider

Returts a reference to the FloatSlider contained in this SliderSpinPanel.

spinCtrl

Returts a reference to the FloatSpinCtrl contained in this SliderSpinPanel.

GetRange()

Return a tuple containing the (minimum, maximum) slider/spinbox values.

GetMin()

Returns the minimum slider/spinbox value.

GetMax()

Returns the maximum slider/spinbox value.

GetValue()

Returns the current slider/spinbox value.

SetRange(minValue, maxValue)

Sets the minimum/maximum slider/spinbox values.

SetMin(minValue)

Sets the minimum slider/spinbox value.

SetMax(maxValue)

Sets the maximum slider/spinbox value.

SetValue(value)

Sets the current slider/spinbox value.

_SliderSpinPanel__onLimitButton(ev)

Only called if the SSP_SHOW_LIMITS and SSP_EDIT_LIMITS style flags are set.

Called when either of the minimum/maximum limit buttons are clicked.

Pops up a NumberDialog window. If the user changes the limit value, updates the slider/spin limits, and emits an EVT_SSP_LIMIT event.

_SliderSpinPanel__onSlider(ev)

Called when the user changes the slider value.

Updates the spinbox value and emits an EVT_SSP_VALUE event.

_SliderSpinPanel__onSpin(ev)

Called when the user changes the spinbox value.

Updates the slider value and emits an EVT_SSP_VALUE event.

__module__ = 'fsleyes_widgets.floatslider'
fsleyes_widgets.floatslider.FS_MOUSEWHEEL = 1

If set, mouse wheel events on the slider will change the value.

fsleyes_widgets.floatslider.FS_INTEGER = 2

If set, the slider will store an integer value instead of a floating point value.

fsleyes_widgets.floatslider.EVT_SSP_VALUE = <wx.core.PyEventBinder object>

Identifier for the SliderSpinValueEvent.

fsleyes_widgets.floatslider.EVT_SSP_LIMIT = <wx.core.PyEventBinder object>

Identifier for the SliderSpinLimitEvent.

fsleyes_widgets.floatslider.SliderSpinValueEvent

alias of wx.lib.newevent.NewEvent.<locals>._Event

fsleyes_widgets.floatslider.SliderSpinLimitEvent

alias of wx.lib.newevent.NewEvent.<locals>._Event

fsleyes_widgets.floatslider.SSP_SHOW_LIMITS = 1

If set, the data range limits are shown alongside the slider/spin control widgets.

fsleyes_widgets.floatslider.SSP_EDIT_LIMITS = 2

If set, and SSP_SHOW_LIMITS is also set, the data range limits are shown on buttons alongside the slider/spin control widgets.

When the user pushes the button, a NumberDialog is shown, allowing the user to change the data range.

fsleyes_widgets.floatslider.SSP_MOUSEWHEEL = 4

If set, mouse wheel events on the slider/spin controls will change the value.

fsleyes_widgets.floatslider.SSP_INTEGER = 8

If set, the SliderSpinPanel will store an integer value instead of floating point value.

fsleyes_widgets.floatslider.SSP_NO_LIMITS = 16

If set, the user is able to enter values outside of the range into the spin controls.