mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-28 07:03:00 +08:00
a903fc3d75
Signed-off-by: bjsylvia <bjsylvia@163.com>
113 lines
2.7 KiB
ReStructuredText
113 lines
2.7 KiB
ReStructuredText
.. _lv_switch:
|
|
|
|
==================
|
|
Switch (lv_switch)
|
|
==================
|
|
|
|
|
|
Overview
|
|
********
|
|
|
|
Switch Widgets look like little sliders and are used to display, and optionally
|
|
modify, a value that can be "on" or "off".
|
|
|
|
By default, a Switch is oriented horizontally. It's orientation will be vertical
|
|
if you set ``width`` < ``height``.
|
|
|
|
|
|
|
|
.. _lv_switch_parts_and_styles:
|
|
|
|
Parts and Styles
|
|
****************
|
|
|
|
- :cpp:enumerator:`LV_PART_MAIN` Switch's background; uses the :ref:`typical
|
|
background style properties <typical bg props>`. ``padding`` makes the indicator smaller
|
|
in the respective direction.
|
|
- :cpp:enumerator:`LV_PART_INDICATOR` The indicator that shows the current state of
|
|
the Switch; also uses the :ref:`typical background style properties <typical bg props>`.
|
|
- :cpp:enumerator:`LV_PART_KNOB` A rectangle (or circle) drawn at the left or right
|
|
side of the indicator; also uses the :ref:`typical background style properties
|
|
<typical bg props>` to modify the knob's appearance. By default, the knob is round
|
|
(radius-style can modify this) with diameter slightly smaller than the smaller
|
|
side of the slider. The knob can be made larger with the ``padding`` values.
|
|
Padding values can be asymmetric as well.
|
|
|
|
|
|
|
|
.. _lv_switch_usage:
|
|
|
|
Usage
|
|
*****
|
|
|
|
Change state
|
|
------------
|
|
|
|
The Switch uses the standard :cpp:enumerator:`LV_STATE_CHECKED` state.
|
|
|
|
To get the current state of the Switch (with ``true`` being on), use
|
|
:cpp:expr:`lv_obj_has_state(widget, LV_STATE_CHECKED)`.
|
|
|
|
Call :cpp:expr:`lv_obj_add_state(widget, LV_STATE_CHECKED)` to turn it on, or
|
|
:cpp:expr:`lv_obj_remove_state(widget, LV_STATE_CHECKED)` to turn it off
|
|
programmatically.
|
|
|
|
Change orientation
|
|
------------------
|
|
|
|
With a Switch is created, its default orientation is
|
|
:cpp:enumerator:`LV_SWITCH_ORIENTATION_AUTO`, which causes it to be oriented based
|
|
on ``width`` and ``height``. You can change this behavior using
|
|
:cpp:expr:`lv_switch_set_orientation(widget, orientation)`. Possible values for
|
|
``orientation`` are:
|
|
|
|
- :cpp:enumerator:`LV_SWITCH_ORIENTATION_AUTO`
|
|
- :cpp:enumerator:`LV_SWITCH_ORIENTATION_HORIZONTAL`
|
|
- :cpp:enumerator:`LV_SWITCH_ORIENTATION_VERTICAL`
|
|
|
|
|
|
|
|
.. _lv_switch_events:
|
|
|
|
Events
|
|
******
|
|
|
|
- :cpp:enumerator:`LV_EVENT_VALUE_CHANGED` Sent when Switch changes state.
|
|
|
|
.. admonition:: Further Reading
|
|
|
|
Learn more about :ref:`lv_obj_events` emitted by all Widgets.
|
|
|
|
Learn more about :ref:`events`.
|
|
|
|
|
|
|
|
.. _lv_switch_keys:
|
|
|
|
Keys
|
|
****
|
|
|
|
- ``LV_KEY_UP/RIGHT`` Turns Switch ON
|
|
- ``LV_KEY_DOWN/LEFT`` Turns Switch OFF
|
|
- :cpp:enumerator:`LV_KEY_ENTER` Toggles the Switch
|
|
|
|
.. admonition:: Further Reading
|
|
|
|
Learn more about :ref:`indev_keys`.
|
|
|
|
|
|
|
|
.. _lv_switch_example:
|
|
|
|
Example
|
|
*******
|
|
|
|
.. include:: ../../examples/widgets/switch/index.rst
|
|
|
|
|
|
|
|
.. _lv_switch_api:
|
|
|
|
API
|
|
***
|