phoenix_title wx.lib.agw.floatspin.FloatSpin

FloatSpin implements a floating point SpinCtrl. It is built using a custom wx.Control, composed by a TextCtrl and a SpinButton. In order to correctly handle floating points numbers without rounding errors or non-exact floating point representations, FloatSpin uses the great FixedPoint class from Tim Peters.


class_hierarchy Class Hierarchy

Inheritance diagram for class FloatSpin:

appearance Control Appearance


wxMSW

wxMSW

wxMAC

wxMAC

wxGTK

wxGTK


super_classes Known Superclasses

wx.Control


method_summary Methods Summary

__init__

Default class constructor.

ClampValue

Clamps var between _min and _max depending if the range has

DoGetBestSize

Gets the size which best suits the window: for a control, it would be the

DoSendEvent

Send the event to the parent.

GetDefaultValue

Returns the FloatSpin default value.

GetDigits

Returns the number of digits shown.

GetFont

Returns the underlying TextCtrl font.

GetFormat

Returns the string format in use.

GetIncrement

Returns the increment for every EVT_FLOATSPIN event.

GetMax

Returns the maximum value for FloatSpin. It can be a

GetMin

Returns the minimum value for FloatSpin. It can be a

GetSnapToTicks

Returns whether the snap to ticks option is active or not.

GetTextCtrl

Returns the underlying TextCtrl.

GetValue

Returns the FloatSpin value.

HasRange

Returns whether FloatSpin range has been set or not.

InRange

Returns whether a value is inside FloatSpin range.

IsDefaultValue

Returns whether the current value is the default value or not.

IsFinite

Tries to determine if a value is finite or infinite/NaN.

OnChar

Handles the wx.EVT_CHAR event for FloatSpin.

OnDestroy

Handles the wx.EVT_WINDOW_DESTROY event for FloatSpin.

OnFocus

Handles the wx.EVT_SET_FOCUS event for FloatSpin.

OnKillFocus

Handles the wx.EVT_KILL_FOCUS event for FloatSpin.

OnMouseWheel

Handles the wx.EVT_MOUSEWHEEL event for FloatSpin.

OnSize

Handles the wx.EVT_SIZE event for FloatSpin.

OnSpinDown

Handles the wx.EVT_SPIN_DOWN event for FloatSpin.

OnSpinMouseDown

Handles the wx.EVT_LEFT_DOWN event for FloatSpin.

OnSpinUp

Handles the wx.EVT_SPIN_UP event for FloatSpin.

OnTextEnter

Handles the wx.EVT_TEXT_ENTER event for FloatSpin.

ReplaceDoubleZero

Replaces the (somewhat) python ugly +e000 with +e00.

SetDefaultValue

Sets the FloatSpin default value.

SetDigits

Sets the number of digits to show.

SetFont

Sets the underlying TextCtrl font.

SetFormat

Set the string format to use.

SetIncrement

Sets the increment for every EVT_FLOATSPIN event.

SetMax

Sets the maximum value for FloatSpin.

SetMin

Sets the minimum value for FloatSpin.

SetRange

Sets the allowed range.

SetRangeDontClampValue

Sets the allowed range.

SetSnapToTicks

Force the value to always be divisible by the increment. Initially False.

SetToDefaultValue

Sets FloatSpin value to its default value.

SetValue

Sets the FloatSpin value.

SyncSpinToText

Synchronize the underlying TextCtrl with SpinButton.


property_summary Properties Summary

DefaultValue

Returns the FloatSpin default value.

Digits

Returns the number of digits shown.

Font

Returns the underlying TextCtrl font.

Format

Returns the string format in use.

Increment

Returns the increment for every EVT_FLOATSPIN event.

Max

Returns the maximum value for FloatSpin. It can be a

Min

Returns the minimum value for FloatSpin. It can be a

Value

Returns the FloatSpin value.


api Class API

class FloatSpin(wx.Control)

FloatSpin implements a floating point SpinCtrl. It is built using a custom wx.Control, composed by a TextCtrl and a SpinButton. In order to correctly handle floating points numbers without rounding errors or non-exact floating point representations, FloatSpin uses the great FixedPoint class from Tim Peters.


Methods

__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, value=0.0, min_val=None, max_val=None, increment=1.0, digits=-1, agwStyle=FS_LEFT, name="FloatSpin")

Default class constructor.

Parameters:
  • parent – the FloatSpin parent;

  • id – an identifier for the control: a value of -1 is taken to mean a default;

  • pos – the control position. A value of (-1, -1) indicates a default position, chosen by either the windowing system or wxPython, depending on platform;

  • size – the control size. A value of (-1, -1) indicates a default size, chosen by either the windowing system or wxPython, depending on platform;

  • style – the window style;

  • value – is the current value for FloatSpin;

  • min_val – the minimum value, ignored if None;

  • max_val – the maximum value, ignored if None;

  • increment – the increment for every FloatSpinEvent event;

  • digits – number of representative digits for your floating point numbers;

  • agwStyle – one of the following bits:

    Window Styles

    Hex Value

    Description

    FS_READONLY

    0x1

    Sets FloatSpin as read-only control.

    FS_LEFT

    0x2

    Horizontally align the underlying TextCtrl on the left.

    FS_CENTRE

    0x4

    Horizontally align the underlying TextCtrl on center.

    FS_RIGHT

    0x8

    Horizontally align the underlying TextCtrl on the right.

  • name – the window name.



ClampValue(self, var)

Clamps var between _min and _max depending if the range has been specified.

Parameters:

var – the value to be clamped.

Returns:

A clamped copy of var.



DoGetBestSize(self)

Gets the size which best suits the window: for a control, it would be the minimal size which doesn’t truncate the control, for a panel - the same size as it would have after a call to Fit().

Note

Overridden from wx.Control.



DoSendEvent(self)

Send the event to the parent.



GetDefaultValue(self)

Returns the FloatSpin default value.



GetDigits(self)

Returns the number of digits shown.



GetFont(self)

Returns the underlying TextCtrl font.



GetFormat(self)

Returns the string format in use.

See also

SetFormat for a list of valid string formats.



GetIncrement(self)

Returns the increment for every EVT_FLOATSPIN event.



GetMax(self)

Returns the maximum value for FloatSpin. It can be a number or None if no minimum is present.



GetMin(self)

Returns the minimum value for FloatSpin. It can be a number or None if no minimum is present.



GetSnapToTicks(self)

Returns whether the snap to ticks option is active or not.



GetTextCtrl(self)

Returns the underlying TextCtrl.



GetValue(self)

Returns the FloatSpin value.



HasRange(self)

Returns whether FloatSpin range has been set or not.



InRange(self, value)

Returns whether a value is inside FloatSpin range.

Parameters:

value – the value to test.



IsDefaultValue(self)

Returns whether the current value is the default value or not.



IsFinite(self, value)

Tries to determine if a value is finite or infinite/NaN.

Parameters:

value – the value to test.



OnChar(self, event)

Handles the wx.EVT_CHAR event for FloatSpin.

Parameters:

event – a KeyEvent event to be processed.

Note

This method works on the underlying TextCtrl.



OnDestroy(self, event)

Handles the wx.EVT_WINDOW_DESTROY event for FloatSpin.

Parameters:

event – a wx.WindowDestroyEvent event to be processed.

Note

This method tries to correctly handle the control destruction under MSW.



OnFocus(self, event)

Handles the wx.EVT_SET_FOCUS event for FloatSpin.

Parameters:

event – a FocusEvent event to be processed.



OnKillFocus(self, event)

Handles the wx.EVT_KILL_FOCUS event for FloatSpin.

Parameters:

event – a FocusEvent event to be processed.



OnMouseWheel(self, event)

Handles the wx.EVT_MOUSEWHEEL event for FloatSpin.

Parameters:

event – a MouseEvent event to be processed.



OnSize(self, event)

Handles the wx.EVT_SIZE event for FloatSpin.

Parameters:

event – a wx.SizeEvent event to be processed.

Note

This method resizes the text control and reposition the spin button when resized.



OnSpinDown(self, event)

Handles the wx.EVT_SPIN_DOWN event for FloatSpin.

Parameters:

event – a SpinEvent event to be processed.



OnSpinMouseDown(self, event)

Handles the wx.EVT_LEFT_DOWN event for FloatSpin.

Parameters:

event – a MouseEvent event to be processed.

Note

This method works on the underlying SpinButton.



OnSpinUp(self, event)

Handles the wx.EVT_SPIN_UP event for FloatSpin.

Parameters:

event – a SpinEvent event to be processed.



OnTextEnter(self, event)

Handles the wx.EVT_TEXT_ENTER event for FloatSpin.

Parameters:

event – a KeyEvent event to be processed.

Note

This method works on the underlying TextCtrl.



ReplaceDoubleZero(self, strs)

Replaces the (somewhat) python ugly +e000 with +e00.

Parameters:

strs – a string (possibly) containing a +e00 substring.



SetDefaultValue(self, defaultvalue)

Sets the FloatSpin default value.

Parameters:

defaultvalue – a floating point value representing the new default value for FloatSpin.



SetDigits(self, digits=-1)

Sets the number of digits to show.

Parameters:

digits – the number of digits to show. If digits < 0, FloatSpin tries to calculate the best number of digits based on input values passed in the constructor.



SetFont(self, font=None)

Sets the underlying TextCtrl font.

Parameters:

font – a valid instance of wx.Font.



SetFormat(self, fmt="%f")

Set the string format to use.

Parameters:

fmt – the new string format to use. One of the following strings:

Format

Description

’e’

Floating point exponential format (lowercase)

’E’

Floating point exponential format (uppercase)

’f’

Floating point decimal format

’F’

Floating point decimal format

’g’

Floating point format. Uses lowercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise

’G’

Floating point format. Uses uppercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise



SetIncrement(self, increment)

Sets the increment for every EVT_FLOATSPIN event.

Parameters:

increment – a floating point number specifying the FloatSpin increment.



SetMax(self, max_val)

Sets the maximum value for FloatSpin.

Parameters:

max_val – the maximum value for FloatSpin. If it is None it is ignored.

Note

This method doesn’t modify the current value.



SetMin(self, min_val)

Sets the minimum value for FloatSpin.

Parameters:

min_val – the minimum value for FloatSpin. If it is None it is ignored.

Note

This method doesn’t modify the current value.



SetRange(self, min_val, max_val)

Sets the allowed range.

Parameters:
  • min_val – the minimum value for FloatSpin. If it is None it is ignored;

  • max_val – the maximum value for FloatSpin. If it is None it is ignored.

Note

This method doesn’t modify the current value.

Note

You specify open ranges like this (you can equally do this in the constructor):

SetRange(min_val=1, max_val=None)
SetRange(min_val=None, max_val=0)

or no range:

SetRange(min_val=None, max_val=None)


SetRangeDontClampValue(self, min_val, max_val)

Sets the allowed range.

Parameters:
  • min_val – the minimum value for FloatSpin. If it is None it is ignored;

  • max_val – the maximum value for FloatSpin. If it is None it is ignored.

Note

This method doesn’t modify the current value.



SetSnapToTicks(self, forceticks=True)

Force the value to always be divisible by the increment. Initially False.

Parameters:

forceticksTrue to force the snap to ticks option, False otherwise.

Note

This uses the default value as the basis, you will get strange results for very large differences between the current value and default value when the increment is very small.



SetToDefaultValue(self)

Sets FloatSpin value to its default value.



SetValue(self, value)

Sets the FloatSpin value.

Parameters:

value – the new value.



SyncSpinToText(self, send_event=True, force_valid=True)

Synchronize the underlying TextCtrl with SpinButton.

Parameters:
  • send_eventTrue to send a EVT_FLOATSPIN event, False otherwise;

  • force_validTrue to force a valid value (i.e. inside the provided range), False otherwise.


Properties

DefaultValue

Returns the FloatSpin default value.



Digits

Returns the number of digits shown.



Font

Returns the underlying TextCtrl font.



Format

Returns the string format in use.

See also

SetFormat for a list of valid string formats.



Increment

Returns the increment for every EVT_FLOATSPIN event.



Max

Returns the maximum value for FloatSpin. It can be a number or None if no minimum is present.



Min

Returns the minimum value for FloatSpin. It can be a number or None if no minimum is present.



Value

Returns the FloatSpin value.