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

下拉框 (Dropdown)

dropdown.png


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

示例代码

-- 回调函数
event_handler = function(obj, event)if (event == lvgl.EVENT_VALUE_CHANGED) thenprint("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 dolvgl.dropdown_set_symbol(dd, sym[i])sys.wait(1000)
end

jdfw3.gif

列表框高度

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

lvgl.dropdown_set_max_height(dd, 100)

image.png

控制

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

while true dosys.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) thenprint("Option:", lvgl.dropdown_get_symbol(obj))end
endlvgl.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.rhkb.cn/news/119152.html

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

相关文章

类ChatGPT大模型LLaMA及其微调模型

1.LLaMA LLaMA的模型架构:RMSNorm/SwiGLU/RoPE/Transfor mer/1-1.4T tokens 1.1对transformer子层的输入归一化 对每个transformer子层的输入使用RMSNorm进行归一化,计算如下: 1.2使用SwiGLU替换ReLU 【Relu激活函数】Relu(x) max(0,x) 。 【GLU激…

项目:智慧教室(cubemx+webserver)

第一章:需求与配置 一。项目需求 二。实现外设控制 注意: 先配置引脚,再配置外设。否则会出现一些不可预料的问题 1.时钟,串口,灯,蜂鸣器配置 (1)RCC配置为外部时钟,修…

性能可靠it监控系统,性能监控软件的获得来源有哪些

性能可靠的IT监控系统是企业IT运维的重要保障之一。以下是一个性能可靠的IT监控系统应该具备的特点: 高可用性 高可用性是IT监控系统的一个重要特点,它可以保证系统在24小时不间断监控的同时,保证系统服务的可用性和稳定性。为了实现高可用性…

JVM ZGC垃圾收集器

ZGC垃圾收集器 ZGC(“Z”并非什么专业名词的缩写,这款收集器的名字就叫作Z Garbage Collector)是一款在JDK 11中新加入的具有实验性质[1]的低延迟垃圾收集器,是由Oracle公司研发的。 ZGC收集器是一款基于Region内存布局的&#…

时间语义与窗口

时间语义 在Flink中,时间语义分为两种 : 处理时间和事件时间。时间语义与窗口函数是密不可分的。以窗口为单位进行某一段时间内指标统计,例如想要统计8点-9点的某个页面的访问量,此时就需要用到了窗口函数,这里的关键…

多目标应用:基于多目标向日葵优化算法(MOSFO)的微电网多目标优化调度MATLAB

一、微网系统运行优化模型 参考文献: [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、多目标向日葵优化算法 多目标向日葵优化算法(Multi-objective sunflower optimization,MOS…

kubesphere中部署grafana实现dashboard以PDF方式导出

1,部署grafana-image-renderer 2,部署grafana GF_RENDERING_SERVER_URL http://ip:30323/render #grafana-image-renderer地址 GF_RENDERING_CALLBACK_URL http://ip:32403/ #grafana地址 GF_LOG_FILTERS rend…

【CSS】简记CSS效果:通过transition(动画过渡属性)实现侧边栏目滑入滑出

需求 在资金明细的页面中&#xff0c;点击按钮时筛选区域从左侧滑出&#xff0c;完成筛选点击确认后调用接口完成数据查询&#xff0c;筛选区域滑入左侧&#xff1b; 基于微信小程序页面实现 wxml代码 <view><!-- 操作按钮 --><button type"primary&qu…

docker笔记8:Docker网络

1.是什么 1.1 docker不启动&#xff0c;默认网络情况 ens33 lo virbr0 在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后&#xff0c;启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡&#xff1a;它还有一个固定的默认IP地址192.168.122…

Thymeleaf常见属性

参考文档 thymeleaf 语法——th:text默认值、字符串连接、th:attr、th:href 传参、th:include传参、th:inline 内联、th:each循环、th:with、th:if_猎人在吃肉的博客-CSDN博客 代码演示 Controller public class TestController {AutowiredMenuService menuService;GetMapp…

【洛谷】P3853 路标设置

原题链接&#xff1a;https://www.luogu.com.cn/problem/P3853 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 整体思路&#xff1a;二分答案 由题意知&#xff0c;公路上相邻路标的最大距离定义为该公路的“空旷指数”。在公路上增设一些路标&…

MySQL的备份与恢复以及日志管理

目录 一、数据备份的重要性 二、数据库备份的分类 1、物理备份 2、逻辑备份 &#xff08;1&#xff09;完全备份&#xff1a;每次对数据进行完整的备份 &#xff08;2&#xff09;差异备份&#xff1a;备份自从上次完全备份之后被修改的过文件 &#xff08;3&#xff09…

yolov5手机版移植

感谢阅读 运行export.py然后百度一个onnx转化工具下载yolov5移动版文件和ncnn修改代码CMakeLists.txt修改修改param的参数![在这里插入图片描述](https://img-blog.csdnimg.cn/7c929414761840db8a2556843abcb2b3.jpeg)yolov5ncnn_jni.cpp修改修改stride16和stride32完工 运行ex…

QT day 1

作业&#xff1a; widget.cpp #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent): QWidget(parent) {qDebug() <<"size" <<this->size();//this->resize(430,330);this->resize(Q…

django-项目

一、RESTful设计风格 基础概念 全称&#xff1a;Representational State Transfer 1.资源 网络上的一个实体&#xff0c;每个资源都有一个独一无二的URL与之对应&#xff1b;获取资源-直接访问URL即可 2.表现层 资源的表现形式 如HTML、xml、JPG、json等 3.状态转化 …

点可云进销存开源系统V6.0.1 ERP系统进销存源码仓库管理

介绍 点可云进销存系统&#xff0c;基于thinkphplayui开发。 功能包含&#xff1a;采购、销售、零售、多仓库管理、财务管理等功能 和超详细的报表功能&#xff08;采购报表、销售报表、零售报表、仓库报表、资金报表等&#xff09; 软件架构 thinkphplayui 功能概览 购货 -购…

红日靶场五(vulnstack5)渗透分析

环境搭建 win7 192.168.111.132&#xff08;仅主机&#xff09; 192.168.123.212&#xff08;桥接&#xff09; .\heart p-0p-0p-0win2008 ip: 192.168.111.131&#xff08;仅主机&#xff09; sun\admin 2020.comkali ip: 192.168.10.131&#xff08;nat&#xff09;vps&…

UG\NX二次开发BlockUI 进入NX的BlockUI编辑界面

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: 要使用BlockUI,需要先进入NX的BlockUI编辑界面。在低版本中,可以在Toolbar工具条中进入开始→所有应用模块→块UI样式编辑器;在高版本中,可以在Ribbon工具栏…

LLMs NLP模型评估Model evaluation ROUGE and BLEU SCORE

在整个课程中&#xff0c;你看到过类似模型在这个任务上表现良好&#xff0c;或者这个微调模型在性能上相对于基础模型有显著提升等陈述。 这些陈述是什么意思&#xff1f;如何形式化你的微调模型在你起初的预训练模型上的性能改进&#xff1f;让我们探讨一些由大型语言模型开…

微信小程序开发教学系列(12)- 实战项目案例

十二、实战项目案例 本章将通过一个简单的实战项目案例来帮助读者巩固之前学习到的知识。我们将搭建一个名为“ToDoList”的微信小程序&#xff0c;实现一个简单的任务清单功能。 项目介绍 ToDoList是一个用于记录和管理任务的小程序。用户可以添加、编辑、完成和删除任务&a…