LVGL_基础控件checkbox

LVGL_基础控件checkbox

1、创建checkbox

在这里插入图片描述

/* 创建一个 checkbox 部件(对象) */
lv_obj_t * cb = lv_checkbox_create(lv_scr_act());     // 创建一个 switch 部件(对象),他的父对象是活动屏幕对象
lv_checkbox_set_text(cb, "100ASK LVGL Tutorial" LV_SYMBOL_PLAY);  // 修改复选框的提示文字(覆盖)lv_obj_center(cb);                                    // 方法1:让对象居中,简洁
//lv_obj_align(cb, LV_ALIGN_CENTER, 0, 0);            // 方法2:让对象居中,较为灵活
2、修改勾选框和文字之间的距离

在这里插入图片描述

lv_obj_set_style_pad_column(cb, 100, 0);// 设置复选框的勾选框和提示文字的距离
3、修改勾选框和文字的大小
lv_obj_set_style_text_font(cb, &lv_font_montserrat_32, 0); // 修改复选框提示文字的字体
lv_obj_set_style_pad_all(cb, 20, LV_PART_INDICATOR);       // 修改复选框勾选框的大小
4、修改复选框的背景颜色

在这里插入图片描述

lv_obj_set_style_bg_opa(cb, 100, LV_PART_MAIN);                         // 修改复选框的背景透明度
lv_obj_set_style_bg_color(cb, lv_color_hex(0xc43e1c), LV_PART_MAIN);    // 修改复选框的背景颜色
5、修改复选框选中和未选中时候的颜色

在这里插入图片描述
在这里插入图片描述

lv_obj_set_style_bg_color(cb, lv_color_hex(0xc43e1c), LV_PART_INDICATOR);   // 修改勾选框部分,勾选时的背景颜色
lv_obj_set_style_bg_color(cb, lv_color_hex(0x7719aa), LV_PART_INDICATOR | LV_STATE_CHECKED); // 修改勾选框部分,不勾选时的背景颜色
6、设置默认选中切不能更改

在这里插入图片描述

// 勾选操作
lv_obj_add_state(cb, LV_STATE_CHECKED);                       // 复选框默认处于不勾选状态,这里设置为勾选状态状态
lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED);   // 当前状态是勾选状态,并且不可更改
7、设置默认不选中且不能更改

在这里插入图片描述

// 不勾选操作
lv_obj_clear_state(cb, LV_STATE_CHECKED);	        // 不勾选
lv_obj_add_state(cb, LV_STATE_DISABLED); 		    // 当前状态是不勾选状态,并且不可更改
8、清除禁用状态
// 清除禁用状态,一般由其他部件(外部)清除
lv_obj_clear_state(cb, LV_STATE_DISABLED);       // 清除禁用状态,复选框可正常使用
9、添加事件
// 添加事件,当我们点击复选框,改变勾选框的状态时,会触发 LV_EVENT_VALUE_CHANGED 事件类型
// 当然我们可以处理他触发的其他事件类型,比如: LV_EVENT_CLICKED
lv_obj_add_event_cb(cb, cb_event_handler, LV_EVENT_VALUE_CHANGED, NULL);static void cb_event_handler(lv_event_t * e)
{lv_event_code_t code = lv_event_get_code(e);lv_obj_t *cb = lv_event_get_target(e);if (code == LV_EVENT_VALUE_CHANGED){const char * txt = lv_checkbox_get_text(cb);// 判断开关状态/* 方式1 */// 返回 bool 类型, 开-1 ; 关-2//if(lv_obj_has_state(cb, LV_STATE_CHECKED))//    LV_LOG_USER("%s: CHECKED!", txt);//else//    LV_LOG_USER("%s: UNCHECKED!", txt);// 更简介的写法LV_LOG_USER("%s: %s", txt, lv_obj_has_state(cb, LV_STATE_CHECKED) ? "CHECKED" : "UNCHECKED");/* 方式2 *///if(lv_obj_get_state(cb) & LV_STATE_CHECKED)//    LV_LOG_USER("%s: CHECKED!", txt);//else//    LV_LOG_USER("%s: UNCHECKED!", txt);//LV_LOG_USER("%s: %s", txt, (lv_obj_get_state(cb) & LV_STATE_CHECKED) ? "CHECKED" : "UNCHECKED");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/128046.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多功能频率计周期/脉宽/占空比/频率测量verilog,视频/代码

名称:多功能频率计周期、脉宽、占空比、频率测量verilog 软件:Quartus 语言:Verilog 代码功能: 多功能频率计,可测量信号的周期、脉冲宽度、占空比、频率,语言为verilog,quartus软件设计仿真…

tailscale自建headscale和derp中继

tailscale derp中继服务简介 tailscale是一个基于WireGuard的零配置软件,它可以轻松地在多台设备之间建立点对点加密连接。 derp服务器是tailscale网络的重要组成部分。它作为tailscale客户端之间的中继,帮助客户端找到并连接到其他客户端设备。 但Tailscale 官方…

华为云API自然语言处理的魅力—AI情感分析、文本分析

云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:人工智能AI自言语言的情感分析、文本分词、文本翻译 1 IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts IDE&a…

扭线机控制

扭线机属于线缆加工设备,线缆加工设备种类非常多。有用于网线绞合的单绞,双绞机等,有关单绞机相关算法介绍,大家可以查看专栏相关文章,有详细介绍,常用链接如下: 线缆行业单绞机控制算法&#…

电脑散热——液金散热

目录 1.简介 2.传统硅脂与液金导热区别 3.特点 4.优点 5.为什么液金技术名声不太好 6.使用方法 1.简介 凡是对于电脑基础硬件有所了解的人,都知道硅脂是如今高性能电脑设备中必不可少的东西。芯片表面和散热器接触面,虽然肉眼看上去是非常光滑的金属…

[VIM]spcaevim

Home | SpaceVim SpaceVim - 知乎 关于Vim/Neovim/SpaceVim的一些思考 - 知乎 vim高配版(1) – SpaceVim 简介 SpaceVim 是国内的一个大佬将一些NB的插件整合到一起的一个插件包. 一键式安装, 功能强大. 官网参见 Home | SpaceVim vim高配版(2) – vimplus 简介 vimplu…

正则验证用户名和跨域postmessage

正则验证用户名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>登录</title> </head> <body> <input type"text" name"username" placeholder"用户名…

c语言动态内存分布

前言&#xff1a; 随着我们深入的学习c语言&#xff0c;之前使用的静态内存分配已经难以满足我们的实际需求。比如前面我们的通讯录功能的实现&#xff0c;如果只是静态内存分配&#xff0c;那么也就意味着程序开始的内存分配大小就是固定的&#xff0c;应该开多大的空间呢&am…

【力扣-每日一题】714. 买卖股票的最佳时机含手续费

class Solution { public:int maxProfit(vector<int>& prices, int fee) {//[i][0]-不持有 [i][1]-持有int mprices.size();vector<vector<int>> dp(m,vector<int>(2));dp[0][0]0; //初始状态dp[0][1]-prices[0];for(int i1;i<m;i){dp[i]…

TDengine+OpenVINO+AIxBoard,助力时序数据分类

时间序列数据分析在工业&#xff0c;能源&#xff0c;医疗&#xff0c;交通&#xff0c;金融&#xff0c;零售等多个领域都有广泛应用。其中时间序列数据分类是分析时序数据的常见任务之一。本文将通过一个具体的案例&#xff0c;介绍 Intel 团队如何使用 TDengine 作为基础软件…

react-antd 文件导入按钮增加一个加载状态

1、效果图实例: 2、部分代码 2.1 props : 2.2 handleChange、上传的文件检验 : construction中定义 construction(props) { super(props); this.state { loadingStaus: flase, loadingDisabled: flase, // 作用:按钮如果在加 载状态中&#xff0c;没…

【Vue面试题十一】、Vue组件之间的通信方式都有哪些?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;Vue组件之间的通信方式都…