Checkbox (lv_cb)¶
Overview¶
The Checkbox objects are built from a Button background which contains an also Button bullet and a Label to realize a classical checkbox.
Text¶
The text can be modified by the lv_cb_set_text(cb, "New text") function. It will dynamically allocate the text.
To set a static text, use lv_cb_set_static_text(cb, txt). This way, only a pointer of txt will be stored and it shouldn’t be deallocated while the checkbox exists.
Check/Uncheck¶
You can manually check / un-check the Checkbox via lv_cb_set_checked(cb, true/false). Setting true will check the checkbox and false will un-check the checkbox.
Inactive¶
To make the Checkbox inactive, use lv_cb_set_inactive(cb, true).
Styles¶
The Checkbox styles can be modified with lv_cb_set_style(cb, LV_CB_STYLE_..., &style).
LV_CB_STYLE_BG - Background style. Uses all
style.bodyproperties. The label’s style comes fromstyle.text. Default:lv_style_transpLV_CB_STYLE_BOX_REL - Style of the released box. Uses the
style.bodyproperties. Default:lv_style_btn_relLV_CB_STYLE_BOX_PR - Style of the pressed box. Uses the
style.bodyproperties. Default:lv_style_btn_prLV_CB_STYLE_BOX_TGL_REL - Style of the checked released box. Uses the
style.bodyproperties. Default:lv_style_btn_tgl_relLV_CB_STYLE_BOX_TGL_PR - Style of the checked released box. Uses the
style.bodyproperties. Default:lv_style_btn_tgl_prLV_CB_STYLE_BOX_INA - Style of the inactive box. Uses the
style.bodyproperties. Default:lv_style_btn_ina
Events¶
Besides the Generic events the following Special events are sent by the Checkboxes:
LV_EVENT_VALUE_CHANGED - sent when the checkbox is toggled.
Note that, the generic input device-related events (like LV_EVENT_PRESSED) are sent in the inactive state too. You need to check the state with lv_cb_is_inactive(cb) to ignore the events from inactive Checkboxes.
Learn more about Events.
Keys¶
The following Keys are processed by the ‘Buttons’:
LV_KEY_RIGHT/UP - Go to toggled state if toggling is enabled
LV_KEY_LEFT/DOWN - Go to non-toggled state if toggling is enabled
Note that, as usual, the state of LV_KEY_ENTER is translated to LV_EVENT_PRESSED/PRESSING/RELEASED etc.
Learn more about Keys.
Example¶
C¶
Simple Checkbox¶
code
#include "lvgl/lvgl.h"
#include <stdio.h>
static void event_handler(lv_obj_t * obj, lv_event_t event)
{
if(event == LV_EVENT_VALUE_CHANGED) {
printf("State: %s\n", lv_cb_is_checked(obj) ? "Checked" : "Unchecked");
}
}
void lv_ex_cb_1(void)
{
lv_obj_t * cb = lv_cb_create(lv_scr_act(), NULL);
lv_cb_set_text(cb, "I agree to terms and conditions.");
lv_obj_align(cb, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_event_cb(cb, event_handler);
}
MicroPython¶
Simple Checkbox¶
code
def event_handler(obj, event):
if event == lv.EVENT.VALUE_CHANGED:
print("State: %s" % ("Checked" if obj.is_checked() else "Unchecked"))
cb = lv.cb(lv.scr_act())
cb.set_text("I agree to terms and conditions.")
cb.align(None, lv.ALIGN.CENTER, 0, 0)
cb.set_event_cb(event_handler)
API¶
Typedefs
-
typedef uint8_t
lv_cb_style_t¶
Enums
-
enum [anonymous]¶
Checkbox styles.
Values:
-
enumerator
LV_CB_STYLE_BG¶ Style of object background.
-
enumerator
LV_CB_STYLE_BOX_REL¶ Style of box (released).
-
enumerator
LV_CB_STYLE_BOX_PR¶ Style of box (pressed).
-
enumerator
LV_CB_STYLE_BOX_TGL_REL¶ Style of box (released but checked).
-
enumerator
LV_CB_STYLE_BOX_TGL_PR¶ Style of box (pressed and checked).
-
enumerator
LV_CB_STYLE_BOX_INA¶ Style of disabled box
-
enumerator
Functions
-
lv_obj_t *
lv_cb_create(lv_obj_t *par, const lv_obj_t *copy)¶ Create a check box objects
- Return
pointer to the created check box
- Parameters
par: pointer to an object, it will be the parent of the new check boxcopy: pointer to a check box object, if not NULL then the new object will be copied from it
-
void
lv_cb_set_text(lv_obj_t *cb, const char *txt)¶ Set the text of a check box.
txtwill be copied and may be deallocated after this function returns.- Parameters
cb: pointer to a check boxtxt: the text of the check box. NULL to refresh with the current text.
-
void
lv_cb_set_static_text(lv_obj_t *cb, const char *txt)¶ Set the text of a check box.
txtmust not be deallocated during the life of this checkbox.- Parameters
cb: pointer to a check boxtxt: the text of the check box. NULL to refresh with the current text.
-
void
lv_cb_set_checked(lv_obj_t *cb, bool checked)¶ Set the state of the check box
- Parameters
cb: pointer to a check box objectchecked: true: make the check box checked; false: make it unchecked
-
void
lv_cb_set_inactive(lv_obj_t *cb)¶ Make the check box inactive (disabled)
- Parameters
cb: pointer to a check box object
-
void
lv_cb_set_style(lv_obj_t *cb, lv_cb_style_t type, const lv_style_t *style)¶ Set a style of a check box
- Parameters
cb: pointer to check box objecttype: which style should be setstyle: pointer to a style
-
const char *
lv_cb_get_text(const lv_obj_t *cb)¶ Get the text of a check box
- Return
pointer to the text of the check box
- Parameters
cb: pointer to check box object
-
bool
lv_cb_is_checked(const lv_obj_t *cb)¶ Get the current state of the check box
- Return
true: checked; false: not checked
- Parameters
cb: pointer to a check box object
-
bool
lv_cb_is_inactive(const lv_obj_t *cb)¶ Get whether the check box is inactive or not.
- Return
true: inactive; false: not inactive
- Parameters
cb: pointer to a check box object
-
const lv_style_t *
lv_cb_get_style(const lv_obj_t *cb, lv_cb_style_t type)¶ Get a style of a button
- Return
style pointer to the style
- Parameters
cb: pointer to check box objecttype: which style should be get
-
struct
lv_cb_ext_t¶