合宙Air724UG LuatOS-Air LVGL API控件--下拉框 (Dropdown)

news2024/11/26 22:33:55

下拉框 (Dropdown)

dropdown.png


在显示选项过多时,可以通过下拉框收起多余选项。只为用户展示列表中的一项。

示例代码

-- 回调函数
event_handler = function(obj, event)
    if (event == lvgl.EVENT_VALUE_CHANGED) then
        print("Option:", lvgl.dropdown_get_symbol(obj))
    end
end
-- 创建下拉框
dd = lvgl.dropdown_create(lvgl.scr_act(), nil)
lvgl.dropdown_set_options(dd, [[Apple
Banana
Orange
Cherry
Grape
Raspberry
Melon
Orange
Lemon
Nuts]])
-- 设置对齐
lvgl.obj_align(dd, nil, lvgl.ALIGN_IN_TOP_MID, 0, 20)
lvgl.obj_set_event_cb(dd, event_handler)

创建

通过函数 dropdown_create 可以创建下拉列表控件。

dd = lvgl.dropdown_create(lvgl.scr_act(), nil)

添加选项

列表中的选项是通过 dropdown_set_options 添加的,通过传入一整个字符串设置的,选项之间是依靠换行符分割的,需要注意的是,如果使用 [[ ]] 这种方式表示字符串的话,左边不要留空白缩进。

lvgl.dropdown_set_options(dd, [[Apple
Banana
Orange
Cherry
Grape
Raspberry
Melon
Orange
Lemon
Nuts]])

image.png


设置完成后也可以向其中插入选项:

lvgl.dropdown_add_option(dd, "aa\nbb\ncc", 2)

aa.png

设置

下拉框可以设置的选项有:

展开方向

列表展开方向的设置函数是 dropdown_set_dir,下面我们分别设置 上 下 左 右 四个方向来看下显示效果。
下拉框在上面展开

lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_UP)

image.png


下拉框在下面展开

lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_DOWN)

image.png

下拉框在左边展开

lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_LEFT)

image.png

下拉框在右边展开

lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_RIGHT)

image.png

小图标

下拉框旁边的小图标也是可以更改的,不光可以是向下拉的小箭头,有关符号的内容可以参考图片章节。

lvgl.dropdown_set_symbol(dd, "\xef\x80\x81")

image.png


我们可以看下其他部分小图标,完整部分参考图片章节。

sym = {
    "\xef\x80\x81",
    "\xef\x80\x88",
    "\xef\x80\x8b",
    "\xef\x80\x8c",
    "\xef\x80\x8d",
    "\xef\x80\x91",
    "\xef\x80\x93",
    "\xef\x80\x95",
    "\xef\x80\x99",
    "\xef\x80\x9c",
    "\xef\x80\xa1",
    "\xef\x80\xa6",
    "\xef\x80\xa7",
    "\xef\x80\xa8",
}

for i=1, #sym do
    lvgl.dropdown_set_symbol(dd, sym[i])
    sys.wait(1000)
end

jdfw3.gif

列表框高度

展示出的列表项是根据页面大小自动展示的,但是列表高度也是可以手动设置的。

lvgl.dropdown_set_max_height(dd, 100)

image.png

控制

除了可以手动点击操作以外,下拉框也可以通过 API 进行操作,展开下拉框,收起下拉框,选择等操作。

while true do
    sys.wait(1000)
    lvgl.dropdown_open(dd)
    lvgl.dropdown_set_selected(dd, math.random(1, 8))
    sys.wait(1000)
    lvgl.dropdown_close(dd, lvgl.ANOM_OFF)
end

这个控件并没有被点击,完全是依靠 API 展开随机设置的。

jdfw.gif

事件

可以通过 lvgl.EVENT_VALUE_CHANGED 消息,获取选项的 ID。

-- 回调函数
event_handler = function(obj, event)
    if (event == lvgl.EVENT_VALUE_CHANGED) then
        print("Option:", lvgl.dropdown_get_symbol(obj))
    end
end

lvgl.obj_set_event_cb(dd, event_handler)

jdfw2.gif

API

lvgl.dropdown_create

调用lvgl.dropdown_create(par, copy)
功能创建下拉框对象
返回指向创建的下拉框对象的指针
参数
par指向对象的指针, 它将是新下拉框的父对象
copy指向下拉框对象的指针, 如果不为 nil, 则将从其复制新对象

lvgl.dropdown_set_options_static

调用lvgl.dropdown_set_options_static(dd, options)
功能在字符串的下拉列表中设置选项
参数
dd下拉列表对象的指针
options通过换行分割的设置选项文本

lvgl.dropdown_add_option

调用lvgl.dropdown_add_option(dd, options, pos)
功能将选项从字符串添加到下拉框中
参数
dd下拉框对象的指针
option字符串选项
pos插入位置,从 0 开始

lvgl.dropdown_set_selected

调用lvgl.dropdown_set_selected(dd, sel_opt)
功能设置所选项
参数
dd下拉框对象的指针
sel_opt所选选项的编号,从 0 开始。

lvgl.dropdown_set_dir

调用lvgl.dropdown_set_dir(dd, dir)
功能设置下拉框的方向
参数
dd指向下拉框对象的指针
dirlvgl.DROPDOWN_DIR_LEFT
lvgl.DROPDOWN_DIR_RIGHT
lvgl.DROPDOWN_DIR_TOP
lvgl.DROPDOWN_DIR_BOTTOM

lvgl.dropdown_set_max_height

调用lvgl.dropdown_set_max_height(dd, h)
功能设置下拉框的最大高度
参数
dd指向下拉框的指针
h最大高度

lvgl.dropdown_set_symbol

调用lvgl.dropdown_set_symbol(dd, sign)
功能设置箭头或其他 sign, 以在关闭下拉框时显示
参数
dd下拉框对象的指针
symbol类似 lvgl.SYMBOL_DOWN 这样的字符

lvgl.dropdown_set_show_selected

调用lvgl.dropdown_set_show_selected(dd, show)
功能设置下拉框是否突出显示最后选择的选项并显示其文本
参数
dd指向下拉框对象的指针
showtrue 显示, false 不显示

lvgl.dropdown_get_text

调用lvgl.dropdown_get_text(dd)
功能获取下拉框的文本
返回文字字串
参数
dd指向下拉框对象的指针

lvgl.dropdown_get_options

调用lvgl.dropdown_get_options(dd)
功能获取下拉框的选项
返回下拉框选项字符串
参数
dd下拉框对象的指针

lvgl.dropdown_get_selected

调用lvgl.dropdown_get_selected(dd)
功能获取选择的选项
返回所选选项的 ID
参数
dd下拉框对象的指针

lvgl.dropdown_get_option_cnt

调用lvgl.dropdown_get_option_cnt(dd)
功能获取选项总数
返回列表中的选项总数
参数
dd下拉框对象的指针

lvgl.dropdown_get_max_height

调用lvgl.dropdown_get_max_height(dd)
功能获取固定高度值
返回打开下拉框时的高度 (0
参数
dd指向下拉框对象的指针

lvgl.dropdown_get_symbol

调用lvgl.dropdown_get_symbol(dd)
功能在下拉框绘制的 sign
返回sign 或 nil (如果未启用)
参数
dd下拉框对象的指针

lvgl.dropdown_get_dir

调用lvgl.dropdown_get_dir(dd)
功能获取列表展开方向
返回列表展开方向
参数
dd下拉框对象的指针

lvgl.dropdown_open

调用lvgl.dropdown_open(dd)
功能展开下拉框
参数
dd下拉框对象的指针

lvgl.dropdown_close

调用lvgl.dropdown_close(dd)
功能关闭(折叠)下拉框
参数
dd下拉框对象的指针
anim_enlvgl.ANIM_ON:使用动画 lvgl.ANOM_OFF:不使用动画

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

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

相关文章

稀疏数组的实现

文章目录 目录 文章目录 前言 一 什么是稀疏数组? 二 稀疏数组怎么存储数据? 三 稀疏数组的实现 总结 前言 大家好,好久不见了,这篇博客是数据结构的第一篇文章,望大家多多支持! 一 什么是稀疏数组? 稀疏数组(Sparse Array)是一种数据结构&a…

Elastic-job分布式调度系统

一、定时任务实现方式 1、Thread方式 final int timeInterval 1000;Thread thread new Thread(new Runnable() {Overridepublic void run() {while (true){try {//每一秒执行一次Thread.sleep(timeInterval);System.out.println("run...");} catch (InterruptedE…

数据结构和算法(1):开始

算法概述 所谓算法,即特定计算模型下,旨在解决特定问题的指令序列 输入 待处理的信息(问题) 输出 经处理的信息(答案) 正确性 的确可以解决指定的问题 确定性 任一算法都可以描述为一个由基本操作组成的序…

SpringBoot核心原理与实践

第一章、SpringBoot简介 1、入门案例 2、官网创建压缩包程序 注意使用的版本pom文件中java --> 1.8、 springboot --> 2.5.0 3、SpringBoot快速启动 运行程序--找引导类 换技术、加技术--加starter 第二章、基础配置 1、配置文件格式 《1、端口号配置》 《2、将目录文…

React原理 - React Hooks

目录 扩展学习资料 React Hooks 编写函数组件 Hooks使命 Hooks解决了什么问题 Hooks原理 useState源码解析 mountState源码解析 Hooks应用 Hooks 实践 倒计时组件 练习 扩展学习资料 名称 链接 React Hooks 官方文档 Introducing Hooks – React useEffect 完整…

PYTHON知识点学习-列表和元组

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由 Aileen_0v0🧸 原创 CSDN首发🐒 如…

把一般数据转换成因子数据格式,做单因子、债券对历史数据回测+获取curl命令+垃圾数据转换成标准行情数据(bardata)

下载curl软件,地址: curl for Windows for 64-bit下载好后解压到文件夹,将里面的bin文件添加到环境变量中,bon文件地址为:C:\Users\59980\curl-8.2.1_7-win64-mingw\bin 打开cmd,输入curl --help,出现下…

软考:中级软件设计师:程序语言基础:表达式,标准分类,法律法规,程序语言特点,函数传值传址

软考:中级软件设计师:程序语言基础:表达式 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都…

ssm民宿管理系统源码和论文

ssm民宿管理系统源码和论文110 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳&…

SSM整合~

构建并配置项目&#xff1a; 第一步&#xff1a;创建maven项目 第二步&#xff1a;配置pom.xml文件 设置打包方式&#xff1a; <packaging>war</packaging>设置版本号为自定义属性&#xff1a; <properties><!--将版本号通过自定义属性配置--><…

跨站请求伪造(CSRF)攻击与防御原理

跨站请求伪造&#xff08;CSRF&#xff09; 1.1 CSRF原理 1.1.1 基本概念 跨站请求伪造&#xff08;Cross Site Request Forgery&#xff0c;CSRF&#xff09;是一种攻击&#xff0c;它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程序上执行非本意操作的攻击&a…

差异化竞争阵地的所在【周技术进阶】-从BS 项目C#最基础截取字符串方法开始

效果 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleAppNumberOneHelloWorld {class Program{static void Main(string[] args){Console.WriteLine("hello world&#xf…

TCP机制之确认应答及超时重传

TCP因为其可靠传输的特性被广泛使用,这篇博客将详细介绍一下TCP协议是如何保证它的可靠性的呢?这得主要依赖于其确认应答及超时重传机制,同时三次握手四次挥手也起到了少部分不作用,但是主要还是由确认应答和超时重传来决定的;注意:这里的可靠传输并不是说100%能把数据发送给接…

JVM学习(五)--方法区

概念&#xff1a; 方法区就是存和类相关的东西&#xff0c;成员方法&#xff0c;方法参数&#xff0c;成员变量&#xff0c;构造方法&#xff0c;类加载器等&#xff0c;逻辑上存在于堆中&#xff0c;但是不同的虚拟机对它的实现不同&#xff0c;oracle的hotsport vm在1.6的时…

事务(SQL)

事务概述 事务是一组操作的集合&#xff0c;他是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向西永提交或撤销操作请求。这组操作&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败。 事务操作 查看/设置事务提交方式 -- 查看/设置事务…

9.1.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-道路分割分析

目录 前言1. 道路分割总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-自动驾驶案例项目self-driving-道路分…

Linux入门之多线程|线程|进程基本概念及库函数

目录 一、线程 1.线程的概 补充知识点&#xff1a;页表 2.线程的优点 3.线程的缺点 4.线程异常 5.线程用途 二、线程与进程的区别与联系 三、关于进程线程的问题 0.posix线程库 1.创建线程 2.线程终止 3.取消线程 4.线程等待&#xff08;等待线程结束&#xff09;…

02|李沐动手学深度学习v2(笔记)

基础优化算法 导航 基础优化算法梯度下降1.1 小批量随机梯度下降1.2 小结 线性回归实现1. 处理数据1.3 生成大小为batch_size的小批量 2. 处理模型3. 模型评估4. 训练过程 梯度下降 针对我们的模型没有显示解。&#xff08;生活中很少能有完全符合的线性模型&#xff0c;大多数…

用户中心笔记-leovany

1. 安装 官方地址&#xff1a;https://pro.ant.design/zh-CN/docs/getting-started 1.1 Mac系统 1.1.1 安装yarn 安装yarn brew install yarn查看版本 brew -v 1.1.2 安装node // 安装node brew install node // 关联 brew unlink node && brew link node // 查看版…

信息系统安全运维模型 课堂记录

声明 本文是学习 信息系统安全运维管理指南. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 范围 本标准描述了信息系统安全运维管理体系&#xff0c;给出了安全运维策略、安全运维组织、安全运维规程和安全运维支撑系统等方面相关活动的目的、要求和…