.. 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 .. module:: wx.lib.agw.floatspin .. currentmodule:: wx.lib.agw.floatspin .. highlight:: python .. _wx.lib.agw.floatspin: ========================================================================================================================================== |phoenix_title| **wx.lib.agw.floatspin** ========================================================================================================================================== :class:`~wx.lib.agw.floatspin.FloatSpin` implements a floating point :class:`SpinCtrl`. Description =========== :class:`FloatSpin` implements a floating point :class:`SpinCtrl`. It is built using a custom :class:`wx.Control`, composed by a :class:`TextCtrl` and a :class:`SpinButton`. In order to correctly handle floating points numbers without rounding errors or non-exact floating point representations, :class:`FloatSpin` uses the great :class:`FixedPoint` class from Tim Peters. What you can do: - Set the number of representative digits for your floating point numbers; - Set the floating point format (``%f``, ``%F``, ``%e``, ``%E``, ``%g``, ``%G``); - Set the increment of every ``EVT_FLOATSPIN`` event; - Set minimum, maximum values for :class:`FloatSpin` as well as its range; - Change font and colour for the underline :class:`TextCtrl`. Usage ===== Usage example:: import wx import wx.lib.agw.floatspin as FS class MyFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "FloatSpin Demo") panel = wx.Panel(self) floatspin = FS.FloatSpin(panel, -1, pos=(50, 50), min_val=0, max_val=1, increment=0.01, value=0.1, agwStyle=FS.FS_LEFT) floatspin.SetFormat("%f") floatspin.SetDigits(2) # our normal wxApp-derived class, as usual app = wx.App(0) frame = MyFrame(None) app.SetTopWindow(frame) frame.Show() app.MainLoop() Events ====== :class:`FloatSpin` catches 3 different types of events: 1) Spin events: events generated by spinning up/down the spinbutton; 2) Char events: playing with up/down arrows of the keyboard increase/decrease the value of :class:`FloatSpin`; 3) Mouse wheel event: using the wheel will change the value of :class:`FloatSpin`. In addition, there are some other functionalities: - It remembers the initial value as a default value, call :meth:`~FloatSpin.SetToDefaultValue`, or press ``Esc`` to return to it; - ``Shift`` + arrow = 2 * increment (or ``Shift`` + mouse wheel); - ``Ctrl`` + arrow = 10 * increment (or ``Ctrl`` + mouse wheel); - ``Alt`` + arrow = 100 * increment (or ``Alt`` + mouse wheel); - Combinations of ``Shift``, ``Ctrl``, ``Alt`` increment the :class:`FloatSpin` value by the product of the factors; - ``PgUp`` & ``PgDn`` = 10 * increment * the product of the ``Shift``, ``Ctrl``, ``Alt`` factors; - ``Space`` sets the control's value to it's last valid state. Window Styles ============= This class supports the following window styles: =============== =========== ================================================== Window Styles Hex Value Description =============== =========== ================================================== ``FS_READONLY`` 0x1 Sets :class:`FloatSpin` as read-only control. ``FS_LEFT`` 0x2 Horizontally align the underlying :class:`TextCtrl` on the left. ``FS_CENTRE`` 0x4 Horizontally align the underlying :class:`TextCtrl` on center. ``FS_RIGHT`` 0x8 Horizontally align the underlying :class:`TextCtrl` on the right. =============== =========== ================================================== Events Processing ================= This class processes the following events: ================= ================================================== Event Name Description ================= ================================================== ``EVT_FLOATSPIN`` Emitted when the user changes the value of :class:`FloatSpin`, either with the mouse or with the keyboard. ================= ================================================== License And Version =================== :class:`FloatSpin` control is distributed under the wxPython license. Latest revision: Andrea Gavana @ 03 Jan 2014, 23.00 GMT Version 1.0 Backward Incompatibilities ========================== Modifications to allow `min_val` or `max_val` to be ``None`` done by: James Bigler, SCI Institute, University of Utah, March 14, 2007 .. note:: Note that the changes I made will break backward compatibility, because I changed the contructor's parameters from `min` / `max` to `min_val` / `max_val` to be consistent with the other functions and to eliminate any potential confusion with the built in `min` and `max` functions. You specify open ranges like this (you can equally do this in the constructor):: SetRange(min_val=1, max_val=None) # [1, ] SetRange(min_val=None, max_val=0) # [ , 0] or no range:: SetRange(min_val=None, max_val=None) # [ , ] |class_summary| Classes Summary =============================== ================================================================================ ================================================================================ `~wx.lib.agw.floatspin.FixedPoint` FixedPoint objects support decimal arithmetic with a fixed number of `~wx.lib.agw.floatspin.FloatSpin` :class:`FloatSpin` implements a floating point :class:`SpinCtrl`. It is built using a custom `~wx.lib.agw.floatspin.FloatSpinEvent` This event will be sent when a ``EVT_FLOATSPIN`` event is mapped in the parent. `~wx.lib.agw.floatspin.FloatTextCtrl` A class which holds a :class:`TextCtrl`, one of the two building blocks ================================================================================ ================================================================================ | .. toctree:: :maxdepth: 1 :hidden: wx.lib.agw.floatspin.FixedPoint wx.lib.agw.floatspin.FloatSpin wx.lib.agw.floatspin.FloatSpinEvent wx.lib.agw.floatspin.FloatTextCtrl