合宙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.mzph.cn/news/71785.shtml

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

相关文章

IMX6ULL移植篇-uboot源码主要文件说明

一. uboot 源码分析前提 由于 uboot 会使用到一些经过编译才会生成的文件,因此,我们在分析 uboot的时候,需要先编译一下 uboot 源码工程。 这里所用的开发板是 nand-flash 版本。 本文学习续上一篇文章,如下: IMX6U…

Task :app:compileDebugKotlin FAILED

gradle.properties 里面加上 android.enableJetifiertrue

【LeetCode】19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点(中等) 方法:快慢指针 思路 为了找到倒数第 n 个节点,我们应该先找到最后一个节点,然后从它开始往前数 n-1 个节点就是要删除的节点。 对于一般情况:设置 fast 和 slow 两个…

idea配置gitLab

前言:网上有很多类似的文章,但描述不够详细 步骤1:安装git 如果安装成功再次点击TEST按钮展示如下:git版本 步骤2:idea配置gitlab 查看当前项目管理的 远程仓库再git的地址,该地址可是gitLab的&#xff0…

DNS解析

1.DNS介绍 DNS 表示域名系统。此系统实质上是用于整理和识别各个域名的网络电话簿。电话簿将“Acme Pizza”之类的名称转换为要拨打的正确电话号码,而 DNS 将“www.google.com”之类的网络地址转换为托管该网站的计算机的物理 IP 地址,如“74.125.19.147…

OpenCV(二十七):图像距离变换

1.像素间距离 2.距离变换函数distanceTransform() void cv::distanceTransform ( InputArray src, OutputArray dst, int distanceType, int maskSize, int dstType CV_32F ) src:输入图像,数据类型为CV8U的单通道图像dst:输出图像,与输入图像…

RabbitMQ学习笔记

1、什么是MQ? MQ全称message queue(消息队列),本质是一个队列,FIFO先进先出,是消息传送过程中保存消息的容器,多 用于分布式系统之间进行通信。 在互联网架构中,MQ是一种非常常见的…

js中call、apply和bind:

文章目录 一、区别:二、案例:三、实现:【1】call实现【2】apply实现【3】bind实现 一、区别: call、apply、bind相同点:都是改变this的指向,传入的第一个参数都是绑定this的指向,在非严格模式中,如果第一个…

大数据时代下的精准营销

在大数据时代,人们的信息越来越透明,留在网络上的各种数据也是企业进行营销的一个重要的生产要素。一直以来,营销的科学性正是因为运用了自然科学中一级互联网中的数据收集手段,严谨的记录、搜集和分析消费者的各项数据和日常生活…

STS4 New 安装Spring Bean Configuration File

背景介绍 在创建spring项目后,如果想想创建spring bean Configuration的时候,发下菜单没有这个选项,需要通过下载Spring Roo插件可满足该操作。 参考案例 参考地址: STS4 New 菜单没有Spring Bean Configuration File选项_SQZHA…

企业网络小实验-MUX-Vlan(NAT)

路漫漫其修远兮,吾将上下而求索 直接上实验 实验说明 模拟公司的部门实验, (1)公司主机如图所示,配置DNS服务器,配置NAT地址转换(使用easy-ip的形式)访问外网。 (2&…

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行…

Lumion 和 Enscape 应该选择怎样的笔记本电脑?

Lumion 和 Enscape实时渲染对配置要求高,本地配置不够,如何快速解决: 本地普通电脑可一键申请高性能工作站,资产安全保障,供软件中心,各种软件插件一键获取,且即开即用,使用灵活&am…

23个react常见问题

1、setState 是异步还是同步? 合成事件中是异步 钩子函数中的是异步 原生事件中是同步 setTimeout中是同步 相关链接:你真的理解setState吗?: 2、聊聊 react16.4 的生命周期 图片 相关连接:React 生命周期 我对 Reac…

NFT Insider#105:The Sandbox即将参加韩国区块链周,YGG的声誉和进步(RAP)将引领玩家晋升到下一层级

引言:NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto(https://twitter.com/beep_crypto)联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周…

sql_mode详解

文章目录 一、sql_mode作用二、查询sql_mode三、mysql8默认的mode配置(6个默认配置)四、常见mode详细解释mysql8默认配置了的mode(6个)需要自己配置的mode(4个) 五、设置sql_mode(一旦设置了&am…

django-项目

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

基于SSM的家政服务网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

QT Day2!!1.登录跳转界面 2.枚举类型 3.左值与右值4.面试问题

1.作业登录跳转界面 //form.h #ifndef FORM_H #define FORM_H#include <QWidget>namespace Ui { class Form; }class Form : public QWidget {Q_OBJECTpublic:explicit Form(QWidget *parent nullptr);~Form();public slots:void jump_slot();private:Ui::Form *ui; };…

【DB】Windows 环境修改MySql 8.0.x 密码

目录 一. 问题 二. 说明 三. 步骤 3.1 账户 3.2 服务 3.3 文件 四. 参考 一. 问题 好久没装数据了, 最近导入数据, 次哦&#xff0c;密码忘记了&#xff0c;网上搜了搜也不靠谱; 去管网上扒拉看看如何修改吧? 二. 说明 使用超级管理员模式, 看下本机 MySQL 版本号 $…