当前位置: 首页 > news >正文

合宙Air724UG LuatOS-Air LVGL API控件--复选框 (Checkbox)

复选框 (Checkbox)
在这里插入图片描述

复选框主要是让用户进行一些内容选择,或者同意用户协议。

示例代码
– 复选框回调函数
function event_handler(obj, event)
if event == lvgl.EVENT_VALUE_CHANGED then
print(“State”, lvgl.checkbox_is_checked(obj))
end
end
– 创建复选框
cb = lvgl.checkbox_create(lvgl.scr_act(), nil)
– 设置标签
lvgl.checkbox_set_text(cb, “I agree to terms and conditions.”)
– 设置居中位置
lvgl.obj_align(cb, nil, lvgl.ALIGN_CENTER, 0, 0)
– 设置回调函数
lvgl.obj_set_event_cb(cb, event_handler)
创建
通过 lvgl.checkbox_create 函数可以创建一个复选框控件。与按钮不同的是,这里文字属于复选框的一部分,不需要额外创建标签来显示文字,因为复选框本身就是按钮和标签组合而成的。

cb = lvgl.checkbox_create(lvgl.scr_act(), nil)
使用
复选框主要是让用户进行一些内容选择,或者同意用户协议。文本内容是通过 lvgl.checkbox_set_text 设置的。

lvgl.checkbox_set_text(cb, “I agree to terms and conditions.”)
状态
复选框控件同按钮一样,可以通过设置风格改变状态,有关风格样式的说明可以参考 样式 章节,复选框可以设置的状态也有6种:

lvgl.BTN_STATE_RELEASED – 正常
lvgl.BTN_STATE_PRESSED – 按下
lvgl.BTN_STATE_DISABLED – 禁用
lvgl.BTN_STATE_CHECKED_RELEASED – 切换按钮 释放
lvgl.BTN_STATE_CHECKED_PRESSED – 切换按钮 按下
lvgl.BTN_STATE_CHECKED_DISABLED – 切换按钮 禁用
我们可以遍历打印一下所有状态

function addBtn(y, s)
local cb = lvgl.checkbox_create(lvgl.scr_act(), nil)
lvgl.obj_align(cb, nil, lvgl.ALIGN_CENTER, 0, y)
lvgl.checkbox_set_text(cb, s)
lvgl.checkbox_set_state(cb, lvgl[s])
end

addBtn(-100, “BTN_STATE_RELEASED”) – 正常
addBtn(-50 , “BTN_STATE_PRESSED”) – 按下
addBtn(0 , “BTN_STATE_DISABLED”) – 禁用
addBtn(50 , “BTN_STATE_CHECKED_RELEASED”) – 切换按钮 释放
addBtn(100 , “BTN_STATE_CHECKED_PRESSED”) – 切换按钮 按下
addBtn(150 , “BTN_STATE_CHECKED_DISABLED”) – 切换按钮 禁用
在这里插入图片描述

事件
复选框获取事件消息一般不是靠点击事件(虽然也可以响应),而是靠 lvgl.EVENT_VALUE_CHANGED 消息。

– 复选框回调函数
function event_handler(obj, event)
if event == lvgl.EVENT_VALUE_CHANGED then
print(“State”, lvgl.checkbox_is_checked(obj))
end
end

lvgl.obj_set_event_cb(cb, event_handler)
在这里插入图片描述

API
lvgl.checkbox_create
调用 lvgl.checkbox_create(par, copy)
功能 创建一个复选框对象
返回 指向新复选框的指针
参数
par 指向对象的指针, 它将是新复选框的父对象
copy 指向复选框对象的指针, 如果不为 nil, 则将从其复制新对象
lvgl.checkbox_set_text
调用 lvgl.checkbox_set_text(cb, txt)
功能 设置复选框的文本。
参数
cb 指向复选框的指针。
txt 复选框的文本。
lvgl.checkbox_set_checked
调用 lvgl.checkbox_set_checked(cb, checked)
功能 设置复选框的状态
参数
cb 指向复选框对象的指针
checked true:选中 false:未选中
lvgl.checkbox_set_disabled
调用 lvgl.checkbox_set_disabled(cb)
功能 使复选框处于非活动状态(禁用)
参数
cb 指向复选框对象的指针
lvgl.checkbox_set_state
调用 lvgl.checkbox_set_state(cb, state)
功能 设置复选框的状态
参数
cb 指向复选框对象的指针
state 复选框的新状态
lvgl.checkbox_get_text
调用 lvgl.checkbox_get_text(cb)
功能 获取复选框的文本
返回 指向复选框文本的指针
参数
cb 指向复选框对象的指针
lvgl.checkbox_is_checked
调用 lvgl.checkbox_is_checked(cb)
功能 获取复选框的当前状态
返回 true:选中;false:未选中
参数
cb 指向复选框对象的指针
lvgl.checkbox_is_inactive
调用 lvgl.checkbox_is_inactive(cb)
功能 获取复选框是否处于非活动状态。
返回 true:是 false:否
参数
cb 指向复选框对象的指针
lvgl.checkbox_get_state
调用 lvgl.checkbox_get_state(cb)
功能 获取复选框的当前状态
返回 复选框的状态
参数
cb 指向复选框对象的指针

相关文章:

合宙Air724UG LuatOS-Air LVGL API控件--复选框 (Checkbox)

复选框 (Checkbox) 复选框主要是让用户进行一些内容选择,或者同意用户协议。 示例代码 – 复选框回调函数 function event_handler(obj, event) if event lvgl.EVENT_VALUE_CHANGED then print(“State”, lvgl.checkbox_is_checked(obj)) end end – 创建复选框…...

使用nps实现内网穿透

1、介绍 ​ 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上&a…...

时序预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测

时序预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测 目录 时序预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测&a…...

websocket和uni-app里使用websocket

一、HTTP是无状态协议 特点: 1、浏览器发送请求时,浏览器和服务器会建立一个连接。完成请求和响应。在http1.0之前,每次请求响应完毕后,会立即断开连接。在http1.1之后,当前网页的所有请求响应完毕后,才断…...

Opencv-C++笔记 (18) : 轮廓和凸包

文章目录 一、轮廓findContours发现轮廓drawContours绘制轮廓代码 二.几何及特性概括——凸包(Convex Hull)凸包概念凸包扫描算法介绍——Graham扫描算法 相关API介绍程序示例轮廓集合及特性性概括——轮廓周围绘制矩形框和圆形相关理论介绍轮廓周围绘制矩形 -API绘制步骤程序实…...

【半监督医学图像分割】2022-MedIA-UWI

【半监督医学图像分割】2022-MedIA-UWI 论文题目:Semi-supervise d me dical image segmentation via a triple d-uncertainty guided mean teacher model with contrastive learning 中文题目:基于对比学习的三维不确定性指导平均教师模型的半监督图像分…...

python发送邮件

为了安全起见,我们发送邮件需要使用tls,这样发送的内容都是加密的了,但是该工具批量发送带有自定义内容的邮件不方便,于是写了一个py脚本,使用--data参数,方便批量发送,我们的策略是每天随机发送…...

gitee上传本地项目bug

🤮这个破bug不知道浪费了多长时间,以前没有记录,每次都忘记,这次记下来 问题描述 gitee创建仓库,然后根据它提示的如下命令,但一直报错 原因分析: 把命令复制出来,粘贴到Sublime …...

自然语言处理2-NLP

目录 自然语言处理2-NLP 如何把词转换为向量 如何让向量具有语义信息 在CBOW中 在Skip-gram中 skip-gram比CBOW效果更好 CBOW和Skip-gram的算法实现 Skip-gram的理想实现 Skip-gram的实际实现 自然语言处理2-NLP 在自然语言处理任务中,词向量(…...

穿上App外衣,保持Web灵魂——PWA温故

早在2015年,设计师弗朗西斯贝里曼和Google Chrome的工程师亚历克斯罗素提出“PWA(渐进式网络应用程序)”概念,将网络之长与应用之长相结合,其核心目标就是提升 Web App 的性能,改善 Web App以媲美Native的流…...

【跟小嘉学 Rust 编程】二十六、Rust的序列化解决方案(Serde)

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

菜鸟教程《Python 3 教程》笔记(14):函数

菜鸟教程《Python 3 教程》笔记(14) 14 函数14.1 参数传递14.1.1 可更改(mutable)与不可更改(immutable)对象14.1.2 python 传不可变对象实例 14.2 参数14.2.1 必需参数14.2.2 关键字参数14.2.3 默认参数14.2.4 不定长参数 14.3 匿名函数14.4 强制位置参…...

SEC推迟ETF,BTC跌破26k,十年之约#6逢跌加仓

今日荐读:8.31教链内参《美证监会推迟所有的BTC现货ETF申请》。刘教链Pro《BTC的流速》。 * * * 刘教链 原创 * * * 原本是9.2的截止日,美SEC昨晚就忙不迭地放出了话,所有现货比特币ETF的申请,推迟,统统推迟。不管你什…...

c++20 多线程并发 latch barrier semaphore

背景: c20 关于多线程并发新增了 latch, barrier, semaphore ,接下来就按照一个一个进行介绍 latch latch 是一次性使用的线程协调点, 一旦给定数量的线程达到latch点时, 所有线程都会解除阻塞, 并继续执行. 基本上它是一个计数器, 在每个线程到达latch点时倒数, 一旦计数器达…...

【8 排序】简单选择排序。

顺序表&#xff1a; void Swap(int &a,int &b){int temp;tempa;ab;btemp; } void SelectSort(int A[],int n){int min,i,j;for(i0;i<n-1;i){mini;for(ji1;j<n;j)if(A[j]<A[min])minj;if(min!i)Swap(A[i],A[min]);} } 单链表&#xff1a; void SelectSort…...

中国太保首席数据库专家林春:先难后易,核心系统数据库升级复盘

P17 是中国太平洋保险&#xff08;以下简称太保&#xff09;关联关系最为复杂、商业数据库绑定程度最深、业务影响最多的核心系统之一。但就是这样一个对太保业务至关重要的系统却被选为数据库升级的“实验品”。当然&#xff0c;说是“实验品”只是因为这是太保第一次对关键的…...

数字孪生智慧工厂:电缆厂 3D 可视化管控系统

近年来&#xff0c;我国各类器材制造业已经开始向数字化生产转型&#xff0c;使得生产流程变得更加精准高效。通过应用智能设备、物联网和大数据分析等技术&#xff0c;企业可以更好地监控生产线上的运行和质量情况&#xff0c;及时发现和解决问题&#xff0c;从而提高生产效率…...

使用WebSocket实现聊天功能

提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数据库设计二、实现代码1.SessionWrap2.websocket3.insertMessage4.清除未读 前言 使用WebSocket实现一对一的聊天功能与未读消息功能 一、数据库设计 会话…...

Ubuntu升级Cmake、gcc、g++

背景 最近要安装llvm&#xff0c;我选择的是从源码安装&#xff0c;所以要使用Cmake进行构建项目。但是服务器上的Cmake、gcc、g的版本都太低了&#xff0c;不符合要求&#xff0c;所以要对此进行升级。在本博客中采用的升级方法不一定是最好的方法&#xff08;因为我也是参考…...

8月28日上课内容 第四章 MySQL备份与恢复

本章结构 前言&#xff1a;日志⭐⭐ MySQL 的日志默认保存位置为 /usr/local/mysql/data ##配置文件 vim /etc/my.cnf [mysqld] ##错误日志&#xff0c;用来记录当MySQL启动、停止或运行时发生的错误信息&#xff0c;默认已开启 log-error/usr/local/mysql/data/mysql_error.l…...

8款降AI工具实测:知网维普全过,毕业季改稿不踩坑

每到毕业季&#xff0c;不少同学都会卡在论文AIGC检测这一关&#xff1a;熬了好几个通宵打磨的稿子&#xff0c;一查AI率直接飙到80%以上&#xff0c;被导师打回要求重改&#xff0c;眼看提交截止日一天天临近&#xff0c;越急越不知道从哪下手。其实现在主流的AI检测算法早就有…...

Qwen3.5-9B开源可部署实践:国产昇腾910B适配方案(CANN+PyTorch NPU移植)

Qwen3.5-9B开源可部署实践&#xff1a;国产昇腾910B适配方案&#xff08;CANNPyTorch NPU移植&#xff09; 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;具备强大的逻辑推理、代码生成和多轮对话能力。该模型特别针对国产昇腾910B处理器进行了优化…...

OpenClaw定时任务管理:千问3.5-27B驱动日报自动生成

OpenClaw定时任务管理&#xff1a;千问3.5-27B驱动日报自动生成 1. 为什么需要自动化日报 每周五下午&#xff0c;我都会陷入一种"汇报焦虑"——要手动整理GitHub提交记录、汇总JIRA任务进度、编写本周技术总结。这个过程通常要花费1-2小时&#xff0c;而且内容模板…...

OpenClaw学习助手方案:Qwen2.5-VL-7B解析教材插图生成记忆卡片

OpenClaw学习助手方案&#xff1a;Qwen2.5-VL-7B解析教材插图生成记忆卡片 1. 为什么需要AI辅助学习工具 去年备考专业认证时&#xff0c;我发现自己总在重复低效的学习循环——花大量时间手动整理教材图表中的关键数据&#xff0c;再誊写到Anki卡片上。这种机械劳动不仅耗时…...

别等宕机才后悔!UPS蓄电池定期巡检,这4点才是核心!

&#xff5c;机房里设备林立&#xff0c;大多数人把目光聚焦在服务器、精密空调上。但其实&#xff0c;潜伏在机房角落的“隐形杀手”&#xff0c;往往是看起来默默无闻的UPS蓄电池。今天我们不谈复杂的技术参数&#xff0c;只用大白话讲清楚&#xff1a;为什么蓄电池必须定期巡…...

5个维度解析UEFITOOL:BIOS固件分析与修改的全能工具

5个维度解析UEFITOOL&#xff1a;BIOS固件分析与修改的全能工具 【免费下载链接】UEFITOOL28 项目地址: https://gitcode.com/gh_mirrors/ue/UEFITOOL28 UEFITOOL是一款专注于UEFI BIOS固件解析的开源工具&#xff0c;它能够帮助技术人员深入分析固件内部结构、提取关键…...

三星 Infinite AI 葡萄酒冰箱:智能厨房新尝试能否突围?

AI 加持&#xff0c;葡萄酒管理新体验周一&#xff0c;三星推出了 Infinite AI 葡萄酒冰箱&#xff0c;目前仅在韩国有售。这款冰箱采用了“AI 葡萄酒管理器”&#xff0c;借助安装在顶部的“AI 视觉”摄像头&#xff0c;能检测用户放入或取出的酒瓶及位置&#xff0c;还能分析…...

seo规则中的内容创作有哪些注意事项

SEO规则中的内容创作有哪些注意事项 在当今互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已成为网站流量和曝光度提升的关键手段。其中&#xff0c;内容创作是SEO的核心要素之一。仅仅创作大量内容并不能保证网站的高排名和高流量。要想在百度等搜索引擎上取…...

Conda环境回滚实战:当安装新包搞崩base环境时如何一键恢复

Conda环境回滚实战&#xff1a;当安装新包搞崩base环境时如何一键恢复 在Python开发中&#xff0c;conda作为包管理和环境管理的利器&#xff0c;几乎成为数据科学家的标配工具。但越是频繁使用conda&#xff0c;越容易遇到一个令人头疼的问题——在base环境中安装新包后&#…...

Ubuntu 22.04上,用Cephadm 17.2.0搭建单节点Ceph集群的保姆级避坑指南

Ubuntu 22.04单节点Ceph集群实战&#xff1a;从零到生产级部署的17个关键细节 当你在Ubuntu 22.04上尝试用Cephadm搭建单节点Ceph集群时&#xff0c;是否遇到过这些场景&#xff1a;bootstrap卡在某个步骤超过半小时、OSD设备明明存在却显示"no available devices"、…...