.. 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 .. currentmodule:: wx.lib.agw.speedmeter .. highlight:: python .. _wx.lib.agw.speedmeter.SpeedMeter: ========================================================================================================================================== |phoenix_title| **wx.lib.agw.speedmeter.SpeedMeter** ========================================================================================================================================== :class:`SpeedMeter` tries to reproduce the behavior of some car controls (but not only), by creating an "angular" control (actually, circular). This is the main class implementation. | |class_hierarchy| Class Hierarchy ================================= .. raw:: html
Inheritance diagram for class SpeedMeter:
| |appearance| Control Appearance =============================== | .. figure:: _static/images/widgets/fullsize/wxmsw/wx.lib.agw.speedmeter.speedmeter.png :alt: wxMSW :figclass: floatleft **wxMSW** .. figure:: _static/images/widgets/fullsize/wxmac/../no_appearance.png :alt: wxMAC :figclass: floatright **wxMAC** .. figure:: _static/images/widgets/fullsize/wxgtk/wx.lib.agw.speedmeter.speedmeter.png :alt: wxGTK :figclass: floatcenter **wxGTK** | |super_classes| Known Superclasses ================================== :class:`wx.lib.agw.speedmeter.BufferedWindow` | |method_summary| Methods Summary ================================ ================================================================================ ================================================================================ :meth:`~wx.lib.agw.speedmeter.SpeedMeter.__init__` Default class constructor. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.CircleCoords` Converts the input values into logical x, y coordinates. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.Draw` Draws everything on the empty bitmap. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.DrawExternalArc` Specify whether or not you wish to draw the external (thicker) arc. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetAngleRange` Returns the range of existence for :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetArcColour` Returns the external arc colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetDirection` Returns the direction of advancing :class:`SpeedMeter` value. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetFillerColour` Returns the partial filler colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetFirstGradientColour` Returns the first gradient colour (near the ticks). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetHandColour` Returns the hand (arrow indicator) colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetHandStyle` Returns the style for the hand (arrow indicator). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetIntersection` Used internally. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetIntervalColours` Returns the colours for the intervals. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetIntervals` Returns the intervals for :class:`SpeedMeter`, a Python list of main ticks displayed. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetMiddleIcon` Returns the icon to be drawn near the center of :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetMiddleIconDimens` Used internally. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetMiddleText` Returns the text to be drawn near the center of :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetMiddleTextColour` Returns the colour for the text in the middle. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetMiddleTextFont` Returns the font for the text in the middle. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetNumberOfSecondaryTicks` Returns the number of secondary (intermediate) ticks. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetSecondGradientColour` Returns the first gradient colour (near the center). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetShadowColour` Returns the hand's shadow colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetSpeedBackground` Returns the background colour outside the :class:`SpeedMeter` control. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetSpeedStyle` Returns a list of strings and a list of integers containing the styles. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetSpeedValue` Returns the current value for :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetTicks` Returns the ticks for :class:`SpeedMeter` intervals (main ticks string values). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetTicksColour` Returns the ticks colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.GetTicksFont` Returns the ticks font. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.OnMouseMotion` Handles the ``wx.EVT_MOUSE_EVENTS`` event for :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetAngleRange` Sets the range of existence for :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetArcColour` Sets the external arc colour (thicker line). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetDirection` Sets the direction of advancing :class:`SpeedMeter` value. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetFillerColour` Sets the partial filler colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetFirstGradientColour` Sets the first gradient colour (near the ticks). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetHandColour` Sets the hand (arrow indicator) colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetHandStyle` Sets the style for the hand (arrow indicator). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetIntervalColours` Sets the colours for the intervals. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetIntervals` Sets the intervals for :class:`SpeedMeter` (main ticks numeric values). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetMiddleIcon` Sets the icon to be drawn near the center of :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetMiddleText` Sets the text to be drawn near the center of :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetMiddleTextColour` Sets the colour for the text in the middle. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetMiddleTextFont` Sets the font for the text in the middle. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetNumberOfSecondaryTicks` Sets the number of secondary (intermediate) ticks. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetSecondGradientColour` Sets the second gradient colour (near the center). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetShadowColour` Sets the hand's shadow colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetSpeedBackground` Sets the background colour outside the :class:`SpeedMeter` control. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetSpeedValue` Sets the current value for :class:`SpeedMeter`. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetTicks` Sets the ticks for :class:`SpeedMeter` intervals (main ticks string values). :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetTicksColour` Sets the ticks colour. :meth:`~wx.lib.agw.speedmeter.SpeedMeter.SetTicksFont` Sets the ticks font. ================================================================================ ================================================================================ | |api| Class API =============== .. class:: SpeedMeter(BufferedWindow) :class:`SpeedMeter` tries to reproduce the behavior of some car controls (but not only), by creating an "angular" control (actually, circular). This is the main class implementation. .. method:: __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, agwStyle=SM_DRAW_HAND, bufferedstyle=SM_BUFFERED_DC, mousestyle=0) Default class constructor. :param `parent`: parent window. Must not be ``None``; :param `id`: window identifier. A value of -1 indicates a default value; :param `pos`: the control position. A value of (-1, -1) indicates a default position, chosen by either the windowing system or wxPython, depending on platform; :param `size`: the control size. A value of (-1, -1) indicates a default size, chosen by either the windowing system or wxPython, depending on platform; :param `agwStyle`: this value specifies the :class:`SpeedMeter` styles, and can be a combination of the following bits: =========================== =========== ================================================== Window Styles Hex Value Description =========================== =========== ================================================== ``SM_ROTATE_TEXT`` 0x1 Draws the ticks rotated: the ticks are rotated accordingly to the tick marks positions. ``SM_DRAW_SECTORS`` 0x2 Different intervals are painted in different colours (every sector of the circle has its own colour). ``SM_DRAW_PARTIAL_SECTORS`` 0x4 Every interval has its own colour, but only a circle corona is painted near the ticks. ``SM_DRAW_HAND`` 0x8 The hand (arrow indicator) is drawn. ``SM_DRAW_SHADOW`` 0x10 A shadow for the hand is drawn. ``SM_DRAW_PARTIAL_FILLER`` 0x20 A circle corona that follows the hand position is drawn near the ticks. ``SM_DRAW_SECONDARY_TICKS`` 0x40 Intermediate (smaller) ticks are drawn between principal ticks. ``SM_DRAW_MIDDLE_TEXT`` 0x80 Some text is printed in the middle of the control near the center. ``SM_DRAW_MIDDLE_ICON`` 0x100 An icon is drawn in the middle of the control near the center. ``SM_DRAW_GRADIENT`` 0x200 A gradient of colours will fill the control. ``SM_DRAW_FANCY_TICKS`` 0x400 With this style you can use xml tags to create some custom text and draw it at the ticks position. See :mod:`lib.fancytext` for the tags. =========================== =========== ================================================== :param `bufferedstyle`: this value allows you to use the normal :class:`PaintDC` or the double buffered drawing options: =========================== =========== ================================================== Buffered Styles Hex Value Description =========================== =========== ================================================== ``SM_NORMAL_DC`` 0x0 Uses the normal :class:`PaintDC` ``SM_BUFFERED_DC`` 0x1 Uses the double buffered drawing style =========================== =========== ================================================== :param `mousestyle`: this value allows you to use the mouse to change the :class:`SpeedMeter` value interactively with left click/drag events. If set to ``SM_MOUSE_TRACK``, the mouse left click/drag allow you to change the :class:`SpeedMeter` value interactively. .. method:: CircleCoords(self, radius, angle, centerX, centerY) Converts the input values into logical x, y coordinates. :param `radius`: the :class:`SpeedMeter` radius; :param `angle`: the angular position of the mouse; :param `centerX`: the `x` position of the :class:`SpeedMeter` center; :param `centerX`: the `y` position of the :class:`SpeedMeter` center. .. method:: Draw(self, dc) Draws everything on the empty bitmap. Here all the chosen styles are applied. :param `dc`: an instance of :class:`wx.DC`. .. method:: DrawExternalArc(self, draw=True) Specify whether or not you wish to draw the external (thicker) arc. :param `draw`: ``True`` to draw the external arc, ``False`` otherwise. .. method:: GetAngleRange(self) Returns the range of existence for :class:`SpeedMeter`. The returned values are in radians. .. method:: GetArcColour(self) Returns the external arc colour. .. method:: GetDirection(self) Returns the direction of advancing :class:`SpeedMeter` value. .. method:: GetFillerColour(self) Returns the partial filler colour. .. method:: GetFirstGradientColour(self) Returns the first gradient colour (near the ticks). .. method:: GetHandColour(self) Returns the hand (arrow indicator) colour. .. method:: GetHandStyle(self) Returns the style for the hand (arrow indicator). .. method:: GetIntersection(self, current, intervals) Used internally. .. method:: GetIntervalColours(self) Returns the colours for the intervals. .. method:: GetIntervals(self) Returns the intervals for :class:`SpeedMeter`, a Python list of main ticks displayed. .. method:: GetMiddleIcon(self) Returns the icon to be drawn near the center of :class:`SpeedMeter`. .. method:: GetMiddleIconDimens(self) Used internally. .. method:: GetMiddleText(self) Returns the text to be drawn near the center of :class:`SpeedMeter`. .. method:: GetMiddleTextColour(self) Returns the colour for the text in the middle. .. method:: GetMiddleTextFont(self) Returns the font for the text in the middle. .. method:: GetNumberOfSecondaryTicks(self) Returns the number of secondary (intermediate) ticks. .. method:: GetSecondGradientColour(self) Returns the first gradient colour (near the center). .. method:: GetShadowColour(self) Returns the hand's shadow colour. .. method:: GetSpeedBackground(self) Returns the background colour outside the :class:`SpeedMeter` control. .. method:: GetSpeedStyle(self) Returns a list of strings and a list of integers containing the styles. .. method:: GetSpeedValue(self) Returns the current value for :class:`SpeedMeter`. .. method:: GetTicks(self) Returns the ticks for :class:`SpeedMeter` intervals (main ticks string values). .. method:: GetTicksColour(self) Returns the ticks colour. .. method:: GetTicksFont(self) Returns the ticks font. .. method:: OnMouseMotion(self, event) Handles the ``wx.EVT_MOUSE_EVENTS`` event for :class:`SpeedMeter`. :param `event`: a :class:`MouseEvent` event to be processed. .. note:: Here only left clicks/drags are involved. Should :class:`SpeedMeter` have something more? .. method:: SetAngleRange(self, start=0, end=pi) Sets the range of existence for :class:`SpeedMeter`. :param `start`: the starting angle, in radians; :param `end`: the ending angle, in radians. .. method:: SetArcColour(self, colour=None) Sets the external arc colour (thicker line). :param `colour`: a valid :class:`wx.Colour` object. If defaulted to ``None``, the arc colour will be black. .. method:: SetDirection(self, direction=None) Sets the direction of advancing :class:`SpeedMeter` value. :param `direction`: specifying "advance" will move the hand in clock-wise direction (like normal car speed control), while using "reverse" will move it counterclock-wise direction. If defaulted to ``None``, then "advance" will be used. .. method:: SetFillerColour(self, colour=None) Sets the partial filler colour. A circle corona near the ticks will be filled with this colour, from the starting value to the current value of :class:`SpeedMeter`. :param `colour`: a valid :class:`wx.Colour` object. .. method:: SetFirstGradientColour(self, colour=None) Sets the first gradient colour (near the ticks). :param `colour`: a valid :class:`wx.Colour` object. .. method:: SetHandColour(self, colour=None) Sets the hand (arrow indicator) colour. :param `colour`: a valid :class:`wx.Colour` object. If defaulted to ``None``, the arrow indicator will be red. .. method:: SetHandStyle(self, style=None) Sets the style for the hand (arrow indicator). :param `style`: by specifying "Hand", :class:`SpeedMeter` will draw a polygon that simulates the car speed control indicator. Using "Arrow" will force :class:`SpeedMeter` to draw a simple arrow. If defaulted to ``None``, "Hand" will be used. .. method:: SetIntervalColours(self, colours=None) Sets the colours for the intervals. :param `colours`: a Python list of colours. The length of this list should be the same as the number of circle sectors in :class:`SpeedMeter`. If defaulted to ``None``, all the intervals will have a white colour. .. note:: Every interval (circle sector) should have a colour. .. method:: SetIntervals(self, intervals=None) Sets the intervals for :class:`SpeedMeter` (main ticks numeric values). :param `intervals`: a Python list of main ticks to be displayed. If defaulted to ``None``, the list `[0, 50, 100]` is used. .. method:: SetMiddleIcon(self, icon) Sets the icon to be drawn near the center of :class:`SpeedMeter`. :param `icon`: a valid :class:`wx.Bitmap` object. .. method:: SetMiddleText(self, text=None) Sets the text to be drawn near the center of :class:`SpeedMeter`. :param `text`: the text to be drawn near the center of :class:`SpeedMeter`. If defaulted to ``None``, an empty string will be used. .. method:: SetMiddleTextColour(self, colour=None) Sets the colour for the text in the middle. :param `colour`: a valid :class:`wx.Colour` object. If defaulted to ``None``, the text in the middle will be painted in blue. .. method:: SetMiddleTextFont(self, font=None) Sets the font for the text in the middle. :param `font`: a valid :class:`wx.Font` object. If defaulted to ``None``, some standard font will be generated. .. method:: SetNumberOfSecondaryTicks(self, ticknum=None) Sets the number of secondary (intermediate) ticks. :param `ticknum`: the number of intermediate ticks. If defaulted to ``None``, 3 ticks are used. .. method:: SetSecondGradientColour(self, colour=None) Sets the second gradient colour (near the center). :param `colour`: a valid :class:`wx.Colour` object. .. method:: SetShadowColour(self, colour=None) Sets the hand's shadow colour. :param `colour`: a valid :class:`wx.Colour` object. If defaulted to ``None``, the shadow colour will be light grey. .. method:: SetSpeedBackground(self, colour=None) Sets the background colour outside the :class:`SpeedMeter` control. :param `colour`: a valid :class:`wx.Colour` object. If defaulted to ``None``, the :class:`SpeedMeter` background will be taken from the system default. .. method:: SetSpeedValue(self, value=None) Sets the current value for :class:`SpeedMeter`. :param `value`: a floating point number representing the current value. If defaulted to ``None``, the :class:`SpeedMeter` value will be the middle point of the control range. .. method:: SetTicks(self, ticks=None) Sets the ticks for :class:`SpeedMeter` intervals (main ticks string values). :param `ticks`: a Python list of strings, representing the ticks values. If defaulted to ``None``, the ticks will be taken from the interval values. .. method:: SetTicksColour(self, colour=None) Sets the ticks colour. :param `colour`: a valid :class:`wx.Colour` object. If defaulted to ``None``, the ticks colour will be set as blue. .. method:: SetTicksFont(self, font=None) Sets the ticks font. :param `font`: a valid :class:`wx.Font` object. If defaulted to ``None``, some standard font will be chosen automatically.