合宙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 指向复选框对象的指针

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

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

相关文章

STM32 FREERTOS osDelayUntil()异常

问题: 在使用osDelayUntil()进行固定延时时发现不起作用,程序不能按照预期的延时进行执行(比延时要快)。 #define taskMBSysManage_Delay_TIME 1000 TickType_t xLastWakeTime; xLastWakeTime xTaskGe…

githubPage部署Vue项目

github中新建项目 my-web (编写vue项目代码) myWebOnline(存放Vue打包后的dist包里面的文件) 发布流程 (假设my-web项目已经编写完成)Vue-cli my-web vue.config.js文件中 const { defineConfig } require(vue/cli-service)…

OpenCV(八):图像二值化

目录 1.固定值二值化 2.自适应阈值二值化 3.Android JNI完整代码 1.固定值二值化 固定阈值二值化是OpenCV中一种简单而常用的图像处理技术,用于将图像转换为二值图像。在固定阈值二值化中,像素值根据一个预定义的阈值进行分类,大于阈值的…

对比Flink、Storm、Spark Streaming 的反压机制

分析&回答 Flink 反压机制 Flink 如何处理反压? Storm 反压机制 Storm反压机制 Storm 在每一个 Bolt 都会有一个监测反压的线程(Backpressure Thread),这个线程一但检测到 Bolt 里的接收队列(recv queue)出现了…

Java异常(Error与Exception)与常见异常处理——第八讲

前言 前面我们讲解了Java的基础语法以及面向对象的思想,相信大家已经基本掌握了Java的基本编程。在之前代码中,我们也看到代码写错了编译器会提示报错,或者编译器没有提示,但是运行的时候报错了,比如前面的数组查询下标超过数组的长度。所以在使用计算机语言进行项目开发的…

简单了解ICMP协议

目录 一、什么是ICMP协议? 二、ICMP如何工作? 三、ICMP报文格式 四、ICMP的作用 五、ICMP的典型应用 5.1 Ping程序 5.2 Tracert(Traceroute)路径追踪程序 一、什么是ICMP协议? ICMP因特网控制报文协议是一个差错报告机制,…

实力认证!OceanBase获“鼎信杯”优秀技术支撑奖

6 月 30 日,2023 “鼎信杯”信息技术发展论坛在京隆重举办第二届“鼎信杯”大赛颁奖典礼。OceanBase 凭借完全自主研发的原生分布式数据库,以及丰富的核心系统国产数据库升级案例,斩获“优秀技术支撑奖”。 论坛上,国内首个基于在…

ThreeJS 模型中内嵌文字

之前有过模型中内嵌html网页,地址☞threeJS 模型中加载html页面_threejs 加载dom元素_小菜花29的博客-CSDN博客 这次是纯粹的在模型中嵌入文本信息,进行简单的文字展示 展示效果图 1. 使用FontLoader文字加载器 引入文本json文件,代码如下…

数据结构(Java实现)-排序

排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序&#xff…

2022年下半年系统架构设计师真题(下午带答案)

试题一 (25分) 某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对…

数据结构(Java实现)-Map和Set

搜索树 概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也…

快速上手GIT命令,现学也能登堂入室

系列文章目录 手把手教你安装Git,萌新迈向专业的必备一步 GIT命令只会抄却不理解?看完原理才能事半功倍! 快速上手GIT命令,现学也能登堂入室 系列文章目录一、GIT HELP1. 命令文档2. 简要说明 二、配置1. 配置列表2. 增删改查3. …

python自动化测试-自动化基本技术原理

1 概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据。 掌握上面的这样的本领可不是容易的事情,必须要有扎实的计算机理论基础,才能看到深层次的本质东西。 …

【C++深入浅出】类和对象上篇(类的基础、类的模型以及this指针)

目录 一. 前言 二. 面向对象与面向过程 2.1 面向过程 2.2 面向对象 三. 类的基础知识 3.1 类的引入 3.2 类的定义 3.3 成员变量的命名规则 3.4 封装 3.5 类的访问限定符 3.6 类的作用域 3.7 类的实例化 四. 类的对象模型 4.1 类对象的大小 4.2 类对象的存储方式 …

从Matrix-ResourceCanary看内存快照生成-ForkAnalyseProcessor(2)

不同于LeakCanary,在Matrix中,主要是通过Resource Canary来监控内存泄漏问题的,且监听的泄漏对象只支持Activity,官方说明如下: 结合分析LeakCanary的经验可知,要实现Activity内存泄漏监听,总体上应该要实现两大功能: Activity生命周期监控查找泄漏对象并得到GC Root P…

【Apollo学习笔记】——规划模块TASK之RULE_BASED_STOP_DECIDER

文章目录 前言RULE_BASED_STOP_DECIDER相关配置RULE_BASED_STOP_DECIDER总体流程StopOnSidePassCheckClearDoneCheckSidePassStopIsPerceptionBlockedIsClearToChangeLaneCheckSidePassStopBuildStopDecisionELSE:涉及到的一些其他函数NormalizeAngleSelfRotate CheckLaneChang…

macOS上制作arm64的jdk17镜像

公司之前一直用的openjdk17的镜像,docker官网可以直接下载,但是最近对接的一个项目,对方用的是jdk17,在对接的时候有加解密异常的问题,为了排查是不是jdk版本的问题,需要制作jdk17的镜像。docker官网上的第…

iOS开发Swift-4-IBAction,group,音乐播放器-木琴App

1.使用素材创建木琴App的UI。 2.连接IBAction。 其余按钮直接拖拽到play里边。 当鼠标置于1处时2处显示如图,表示成功。当用户按下任一按钮都会触发play中的内容。 3.将7个按钮的View中的Tag值分别调为1、2、3、4、5、6、7. 4.将音频文件拖入项目文件中。 Create gr…

Leetcode19 删除链表指定节点

思路:用列表保存链表,然后分情况讨论。 class Solution:def removeNthFromEnd(self, head, n: int):node_list[head]while head.next:headhead.nextnode_list.append(head)remove_loclen(node_list)-n#要移除的位置if len(node_list)1:return Noneif re…

Python小知识 - 一个简单的Python爬虫实例

一个简单的Python爬虫实例 这是一个简单的Python爬虫实例,我们将使用urllib库来下载一个网页并解析它。 首先,我们需要安装urllib库: pip install urllib接下来,我们来看看如何使用urllib库来下载一个网页: import url…