用户工具

站点工具


icore4tlvgl_13

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
icore4tlvgl_13 [2020/12/08 17:04]
zgf 创建
icore4tlvgl_13 [2022/04/01 11:13] (当前版本)
sean
行 2: 行 2:
 |技术支持电话|**0379-69926675-801**||| |技术支持电话|**0379-69926675-801**|||
 |技术支持邮件|Gingko@vip.163.com||| |技术支持邮件|Gingko@vip.163.com|||
-|技术论坛|http://​www.eeschool.org||| 
 ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^ ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 |  V1.0  |  2020-12-3 ​ |  yang  |  初次建立 ​ |  |  V1.0  |  2020-12-3 ​ |  yang  |  初次建立 ​ | 
  
-===== 实验十lv_slider滑块 ​=====+===== 实验十lv_cb复选框 ​=====
  
-{{ :icore4t:icore4t_rtt_lvgl_12_1.gif?direct |}}+==== 一、复选框 ==== 
 + 
 +复选框对象是以按钮的背景构建的,按钮背景还包含选择框和标签,以实现一个经典的复选框。 
 + 
 +复选框的主要部分称为 **LV_CHECKBOX_PART_BG** 。它是选择框和标签的容器。背景使用所有典型的背景样式属性。 
 + 
 +选择框是一个 lv_obj 对象,可以被 **LV_CHECKBOX_PART_BULLET** 刷新。选择框会自动继承背景的状态,因此,背景被按下时,选择框也会进入按下状态。 
 + 
 +标签没有专用部分。由于文本样式属性也是继承背景的,因此可以在背景样式中设置其样式。 
 + 
 +{{ :icore4t:icore4t_rtt_lvgl_13_1.gif?direct |}}
  
 <code c> <code c>
 +void lv_gui_run(void){
 + lvgl2rtt_init("​lcd"​); ​                                       /* 初始化lvgl2rtt */
  
 + lv_obj_t * cb = lv_checkbox_create(lv_scr_act(),​ NULL);
 + lv_checkbox_set_text(cb,​ "this is a checkbox"​);​
 + lv_obj_align(cb,​ NULL, LV_ALIGN_CENTER,​ 0, 0);
 +}
 +</​code>​
 +
 +==== 二、设置文本 ====
 +
 +用户可以通过函数 **lv_checkbox_set_text(cb,​ "New text"​)** 修改复选框文本,它将动态分配文本。
 +
 +若要设置静态文本,请使用 **lv_checkbox_set_static_text(cb,​ txt)** 。这样,将仅存储文本的指针,并且复选框存在时LVGL不释放该指针。
 +
 +==== 三、选中 / 取消选中 ====
 +
 +用户可以通过函数 **lv_checkbox_set_checked(cb,​ true/​false)** 手动选中/​取消选中复选框。设置 **true** 将选中该复选框,而 **false** 将取消选中该复选框。
 +
 +==== 四、禁用复选框 ====
 +
 +要禁用复选框,请使用 **lv_checkbox_set_disabled(cb)** 。
 +
 +==== 五、获取 / 设置复选框状态 ====
 +
 +用户可以使用函数** lv_checkbox_get_state(cb)** 获取当前复选框的状态,也可以使用 **lv_checkbox_set_state(cb,​ state)** 设置复选框的当前状态。可用状态 **lv_btn_state_t** 有以下几种类型:
 +  * **LV_BTN_STATE_RELEASED**
 +  * **LV_BTN_STATE_PRESSED**
 +  * **LV_BTN_STATE_DISABLED**
 +  * **LV_BTN_STATE_CHECKED_RELEASED**
 +  * **LV_BTN_STATE_CHECKED_PRESSED**
 +  * **LV_BTN_STATE_CHECKED_DISABLED**
 +
 +=== 六、事件 ===
 +
 +除了常规事件外,复选框还发送以下特殊事件: ​
 +  * **LV_EVENT_VALUE_CHANGED** - 切换复选框时发送。
 +请注意,在非活动状态下与通用输入设备相关的事件(如 **LV_EVENT_PRESSED** )也会被发送。因此用户需要通过 **lv_cb_is_inactive(cb)** 检查复选框状态,以忽略非活动复选框中的事件。
 +
 +{{ :​icore4t:​icore4t_rtt_lvgl_13_2.gif?​direct |}}
 +
 +<code c>
 +static void event_handler(lv_obj_t * obj, lv_event_t event) ​  /* 回调函数 */
 +{
 + if(event == LV_EVENT_VALUE_CHANGED) {
 + if(lv_checkbox_is_checked(obj) == true){ ​                 /* 判断状态 */
 + lv_label_set_text(label,​ "​Checked"​); ​                 /* 更新标签内容 */
 + }else{
 + lv_label_set_text(label,​ "​Unchecked"​);​
 + }
 + }
 +}
 +void lv_gui_run(void){
 + lvgl2rtt_init("​lcd"​); ​                                       /* 初始化lvgl2rtt */
 +
 + lv_obj_t * cb = lv_checkbox_create(lv_scr_act(),​ NULL); ​     /* 创建复选框 */
 + lv_checkbox_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); ​                      /* 设置复选框回调函数 */
 +
 + label = lv_label_create(lv_scr_act(),​ NULL); ​                /* 创建标签 */
 + lv_label_set_text(label,​ "​Unchecked"​);​
 + lv_obj_align(label,​ NULL, LV_ALIGN_CENTER,​ 0, 30);
 +}
 </​code>​ </​code>​
  
icore4tlvgl_13.1607418256.txt.gz · 最后更改: 2020/12/08 17:04 由 zgf