LittlevGL---Check box(複選框)---11

目的

學習使用複選框。

功能描述

同其他ui的複選框一樣,littlevGL也提供了一個複選框功能。用戶可以配置複選框的風格,文本,以及事件回調的應答任務。

控件創建步驟及函數

創建步驟

用戶可以創建一個複選框對象,並配置對應的文本。此文本不能是局部變量。可配置複選框的初始狀態,是否有效,以及風格和對應事件。

函數

  • 控件創建

lv_obj_t *lv_cb_create(lv_obj_t *par, constlv_obj_t *copy)
  • 設置控件文本

void lv_cb_set_text(lv_obj_t *cb, const char *txt)//指向動態的

void lv_cb_set_static_text(lv_obj_t *cb, const char *txt)//靜態的

const char *lv_cb_get_text(constlv_obj_t *cb)
  • 設置控件的選擇狀態

static void lv_cb_set_checked(lv_obj_t *cb, bool checked)//控制控件選取狀態

static bool lv_cb_is_checked(constlv_obj_t *cb)
  • 是否使能控件

static void lv_cb_set_inactive(lv_obj_t *cb)//設置控件無效

static bool lv_cb_is_inactive(constlv_obj_t *cb)
  • 配置控件風格

void lv_cb_set_style(lv_obj_t *cb, lv_cb_style_ttype, const lv_style_t *style)


LV_CB_STYLE_BG Background style. Uses all style.body properties. The label’s style comes from style.text. Default: lv_style_transp
LV_CB_STYLE_BOX_REL Style of the released box. Uses the style.body properties. Default: lv_style_btn_rel
LV_CB_STYLE_BOX_PR Style of the pressed box. Uses the style.body
LV_CB_STYLE_BOX_INA Style of the inactive box. Uses the style.body properties. Default: lv_style_btn_ina

const lv_style_t *lv_cb_get_style(constlv_obj_t *cb, lv_cb_style_ttype)
  • 事件

 lv_obj_set_event_cb(cb, event_handler)

     LV_EVENT_VALUE_CHANGED//事件類型

案例和代碼

實現一個複選框,配置其事件,打印當前按下和釋放的狀態。

        

#include "ljy_check.h"
#include "lvgl/lvgl.h"
#include <stdio.h>


static void CheckBoxEventCb(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");
		lv_cb_is_checked(obj)? lv_cb_set_text(obj, "OK"):lv_cb_set_text(obj, "unok");//切換txt
    }
}

void DrawCheckBox()
{
	//1. 創建一個cb0
    lv_obj_t * cb = lv_cb_create(lv_scr_act(), NULL);
	//2. 配置文本
    lv_cb_set_text(cb, "Agree");
	//3. 顯示中心
    lv_obj_align(cb, NULL, LV_ALIGN_CENTER, 0, 0);
	//4. 回調事件
    lv_obj_set_event_cb(cb, CheckBoxEventCb);
}

結論

初始界面

操作界面

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章