fsleyes_widgets.floatspin

This module provides the FloatSpinCtrl class, a spin control for modifying a floating point value.

class fsleyes_widgets.floatspin.FloatSpinCtrl(parent, minValue=None, maxValue=None, increment=None, value=None, style=None, width=None, evDelta=None, precision=None)[source]

Bases: Panel

A FloatSpinCtrl is a wx.Panel which contains a wx.TextCtrl and a wx.SpinButton, allowing the user to modify a floating point (or integer) value.

The FloatSpinCtrl is an alternative to wx.SpinCtrl, wx.SpinCtrlDouble, and wx.lib.agw.floatspin.FloatSpin.

  • wx.SpinCtrlDouble: Under Linux/GTK, this widget does not allow

    the user to enter values that are not a multiple of the increment.

  • wx.lib.agw.floatspin.FloatSpin. Differs from the wx.SpinCtrl API in various annoying ways, and formatting is a pain.

Create a FloatSpinCtrl.

The following style flags are available:

FSC_MOUSEWHEEL

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

FSC_INTEGER

If set, the control stores an integer value, rather than a floating point value.

FSC_NO_LIMIT

If set, the control will allow the user to enter values that are outside of the current minimum/maximum limits.

Parameters:
  • parent – The parent of this control (e.g. a wx.Panel).

  • minValue – Initial minimum value.

  • maxValue – Initial maximum value.

  • increment – Default increment to apply when the user changes the value via the spin button or mouse wheel.

  • value – Initial value.

  • style – Style flags - a combination of FSC_MOUSEWHEEL, FSC_INTEGER, and FSC_NO_LIMIT.

  • width – If provided, desired text control width (in characters).

  • evDelta

    Minimum time between consecutive wx.SpinButton events. On Linux/GTK, the wx.SpinButton is badly behaved - if, while clicking on the mouse button, the user moves the mouse even a tiny bit, more than one spin event will be generated. To work around this (without having to write my own wx.SpinButton implementation), the evDelta parameter allows me to throttle the maximum rate at which events received from the spin button can be processed. This is implemented in the __onSpinDown() and __onSpinUp() methods.

    This has the side effect that if the user clicks and holds on the spin button, they have to wait <delta> seconds between increments/decrements.

  • precision – The desired precision to the right of the decimal value. Ignored if the FSC_INTEGER style is active.

property textCtrl

Returns a reference to the TextCtrl contained in this FloatSpinCtrl.

property spinButton

Returns a reference to the SpinButton contained in this FloatSpinCtrl.

DoGetBestClientSize()[source]

Returns the best size for this FloatSpinCtrl.

GetValue()[source]

Returns the current value.

GetMin()[source]

Returns the current minimum value.

GetMax()[source]

Returns the current maximum value.

GetIncrement()[source]

Returns the current inrement.

SetIncrement(inc)[source]

Sets the inrement.

GetRange()[source]

Returns the current data range, a tuple containing the (min, max) values.

SetMin(minval)[source]

Sets the minimum value.

SetMax(maxval)[source]

Sets the maximum value.

SetRange(minval, maxval)[source]

Sets the minimum and maximum values.

SetValue(newValue)[source]

Sets the value.

:returns True if the value was changed, False otherwise.

fsleyes_widgets.floatspin.EVT_FLOATSPIN = <wx.core.PyEventBinder object>

Identifier for the FloatSpinEvent event.

fsleyes_widgets.floatspin.FloatSpinEvent

Event emitted when the floating point value is changed by the user. A FloatSpinEvent has the following attributes:

  • value: The new value.

fsleyes_widgets.floatspin.FSC_MOUSEWHEEL = 1

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

fsleyes_widgets.floatspin.FSC_INTEGER = 2

If set, the control stores an integer value, rather than a floating point value.

fsleyes_widgets.floatspin.FSC_NO_LIMIT = 4

If set, the control will allow the user to enter values that are outside of the current minimum/maximum limits.