【LVGL-下拉列表部件 lv_dropdown】

2024-08-25 06:04

本文主要是介绍【LVGL-下拉列表部件 lv_dropdown】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LVGL-下拉列表部件 lv_dropdown

  • ■ LVGL-下拉列表部件 lv_dropdown
    • ■ 下拉列表部件的组成
    • ■ 添加选项
    • ■ 获取当前选中的选项
    • ■ 设置列表展开方向
    • ■ 设置下拉列表图标
    • ■ 设置列表常显文本
    • ■ 打开、开闭下拉列表
    • ■ 下拉列表部件的 API 函数

■ LVGL-下拉列表部件 lv_dropdown

在这里插入图片描述

■ 下拉列表部件的组成

按钮部分:
① LV_PART_MAIN:按钮的主体背景;
② LV_PART_INDICATOR:指示器,例如上图向下的箭头。
列表部分:
③ LV_PART_SELECTED:当前选中的选项;
④ LV_PART_SCROLLBAR:滚动条;
⑤ LV_PART_MAIN:列表主体背景。 注意: 用户需要设置上述组成部分的样式,需要先将按钮或列表相关的部分获取回来。

■ 添加选项

lv_dropdown_set_options(dropdown, "First \n Second \n Third");
lv_dropdown_add_option(dropdown, "New option", pos);  //其形参 pos 表示添加的位置, 注意: 0 表示列表最上面的位置,
lv_dropdown_set_options_static (dropdown, options); //添加的是静态选项,在这种情况下,用户不能再使用lv_dropdown_add_option
void lv_mainstart(void)
{/* 创建一个下拉列表 */lv_obj_t* lv_ddlist1 = lv_dropdown_create(lv_scr_act());/* 方法一 添加多个选项(动态) */lv_dropdown_set_options(lv_ddlist1,"a\nb\nc\nd"); lv_obj_set_pos(lv_ddlist1,100, 100);/* 默认显示的选项 */lv_dropdown_set_selected(lv_ddlist1, 0);lv_obj_t* lv_ddlist2 = lv_dropdown_create(lv_scr_act());/* 方法二 添加单个选项 */lv_dropdown_add_option(lv_ddlist2,"0", 0);lv_dropdown_add_option(lv_ddlist2, "1", 1);lv_dropdown_add_option(lv_ddlist2, "2", 2);lv_dropdown_add_option(lv_ddlist2, "3", 3);/* 默认显示的选项 */lv_dropdown_set_selected(lv_ddlist2, 1);lv_obj_set_pos(lv_ddlist2, 300, 100);

■ 获取当前选中的选项

当用户选中所需的选项之后,如果没有任何反馈,这将无法和其他板块进行交互,因此, 我们需要在触发的事件回调中获取当前选中的选项索引和文本,

lv_dropdown_get_selected(dropdown)/* 获取选中的选项索引*/
lv_dropdown_get_selected_str(dropdown, buf, buf_size)/* 获取选项字符串,保存到指定的 buf 中。

■ 设置列表展开方向

lv_dropdown_set_dir(dropdown, LV_DIR_LEFT/RIGHT/UP/BOTTOM) /* 设置展开方向 */
void lv_mainstart(void)
{/* 创建一个下拉列表 */lv_obj_t* lv_ddlist1 = lv_dropdown_create(lv_scr_act());/*添加下拉列表项 */lv_dropdown_set_options(lv_ddlist1,"a\nb\nc\nd"); lv_obj_set_pos(lv_ddlist1,100, 100);/* 默认显示的下拉列表项 */lv_dropdown_set_selected(lv_ddlist1, 0);lv_obj_t* lv_ddlist2 =lv_dropdown_create(lv_scr_act());lv_dropdown_set_dir(lv_ddlist2,LV_DIR_LEFT); /* 设置为左侧展开 *//*添加下拉列表项 */lv_dropdown_add_option(lv_ddlist2, "0", 0);lv_dropdown_add_option(lv_ddlist2, "1", 1);lv_dropdown_add_option(lv_ddlist2, "2", 2);lv_dropdown_add_option(lv_ddlist2, "3", 3);/* 默认显示的下拉列表项 */lv_dropdown_set_selected(lv_ddlist2, 1);lv_obj_set_pos(lv_ddlist2, 300, 100);

在这里插入图片描述

■ 设置下拉列表图标

lv_dropdown_set_symbol(dropdown, LV_SYMBOL_…) /* 设置图标 */

在这里插入图片描述

■ 设置列表常显文本

lv_dropdown_set_text 函数,
在默认情况下,当用户选中某个选项后,该选项的文本会更新到列表的头部,示意图如下:
在这里插入图片描述

lv_mainstart(void)
{/* 创建一个下拉列表 */lv_obj_t* lv_ddlist1 =lv_dropdown_create(lv_scr_act());lv_dropdown_set_text(lv_ddlist1, "dropdown");/*添加下拉列表项 */lv_dropdown_set_options(lv_ddlist1,"a\nb\nc\nd"); lv_obj_set_pos(lv_ddlist1,100, 100);/* 默认显示哪一个下拉列表项 */lv_dropdown_set_selected(lv_ddlist1, 0);lv_obj_t* lv_ddlist2 =lv_dropdown_create(lv_scr_act());lv_dropdown_set_dir(lv_ddlist2,LV_DIR_LEFT);  /* 设置下拉方向 *//*添加下拉列表项 */lv_dropdown_add_option(lv_ddlist2, "0", 0);lv_dropdown_add_option(lv_ddlist2, "1", 1);lv_dropdown_add_option(lv_ddlist2, "2", 2);lv_dropdown_add_option(lv_ddlist2, "3", 3);/* 默认显示哪一个下拉列表项 */lv_dropdown_set_selected(lv_ddlist
}

在上述源码中,我们调用了 lv_dropdown_set_tex函数,把第一个列表( lv_ddlist1)的头部文本固定为“ dropdown”
在这里插入图片描述

■ 打开、开闭下拉列表

当用户需要直接打开或者关闭下拉列表时,可以直接调用以下函数

lv_dropdown_open(dropdown) /* 打开下拉列表 */
lv_dropdown_close(dropdown) /* 关闭下拉列表 */

■ 下拉列表部件的 API 函数

lv_dropdown_create() 创建下拉列表
lv_dropdown_set_text() 设置下拉列表按钮的文本(常显文本)
lv_dropdown_set_options() 添加选项(动态)
lv_dropdown_set_options_static() 添加选项(静态)
lv_dropdown_add_option() 添加单个选项
lv_dropdown_clear_options() 清除所有选项
lv_dropdown_set_selected() 设置当前所选项
lv_dropdown_set_dir() 设置展开方向
lv_dropdown_set_symbol() 设置图标
lv_dropdown_set_selected_highlight()设置当前选中的选项是否高亮
lv_dropdown_get_list() 获取下拉列表,以设置样式或进行其他修改
lv_dropdown_get_text() 获取下拉列表按钮的文本
lv_dropdown_get_options() 获取下拉列表的选项
lv_dropdown_get_selected() 获取所选选项的索引
lv_dropdown_get_option_cnt() 获取选项的总数
lv_dropdown_get_selected_str() 获取当前选中的选项文本
lv_dropdown_get_symbol() 获取图标
lv_dropdown_get_selected_highlight()判断当前选中的选项是否高亮
lv_dropdown_get_dir() 获取展开方向
lv_dropdown_open() 打开下拉列表
lv_dropdown_close() 关闭下拉列表

这篇关于【LVGL-下拉列表部件 lv_dropdown】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104746

相关文章

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

Exchange 服务器地址列表的配置方法与注意事项

Exchange Server 是微软推出的一款企业级邮件服务器软件,广泛应用于企业内部邮件系统的搭建与管理。配置 Exchange 服务器地址列表是其中一个关键环节。本文将详细介绍 Exchange 服务器地址列表的配置方法与注意事项,帮助系统管理员顺利完成这一任务。 内容目录 1. 引言 2. 准备工作 3. 配置地址列表 3.1 创建地址列表 3.2 使用 Exchange

Python--列表简介

列表是什么 列表让你能够在⼀个地方存储成组的信息,其中既可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的Python 功能之⼀。 列表(list)是一种可变的序列类型,用于存储一系列有序的元素。这些元素可以是任何类型,包括整数、浮点数、字符串、其他列表(即嵌套列表)等。列表是动态的,可以在运行时增加或删除元素。 用方括号([ ])表示列表,用逗号分隔其中的元素。

龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为: 借助RT-Thread和LVGL

移动UI:分类列表页、筛选页的设计揭秘。

移动UI的列表页设计需要考虑用户体验和界面美观性,以下是一些建议的设计要点: 1. 列表项的展示: 列表页应该清晰地展示各个列表项,包括标题、副标题、缩略图等内容,以便用户快速浏览和识别。可以使用卡片式布局或者简洁的列表布局。 2. 搜索和筛选: 如果列表项较多,应该提供搜索和筛选功能,方便用户查找感兴趣的内容。搜索框和筛选条件可以放置在页面顶部或者底部,以便用户方便操作。

【语句】如何将列表拼接成字符串并截取20个字符后面的

base_info = "".join(tree.xpath('/html/head/script[4]/text()'))[20:] 以下是对这个语句的详细讲解: tree.xpath('/html/head/script[4]/text()')部分: tree:通常是一个已经构建好的 HTML 文档树对象,它是通过相关的 HTML 解析库(比如 lxml)对 HTML 文档进行解

Python中如何实现列表推导式(List Comprehension)

Python中的列表推导式(List Comprehension)是一种简洁且高效的方式来创建列表。它不仅让代码更加简洁,而且通常比使用循环和条件语句生成列表更快。列表推导式的基本形式允许你从现有的列表或其他可迭代对象中创建新的列表,同时应用过滤和转换操作。下面我将详细解释列表推导式的概念、基本语法、高级用法以及其在实际应用中的优势。 一、列表推导式的基本概念 列表推导式是Python中的一种

【R语言数据类型】深入了解 向量、矩阵、数据框、列表

R语言数据类型有向量、矩阵、数据框、列表。下面我们来深入了解下: vector 的划分 R中的vector分为两类,atomic和list,二者的区别在于,前者元素类型必须相同,后者可以不同。前者的代表是向量和矩阵,后者的代表是list和数据框。 创建向量、矩阵、数据框、列表 # atomica <- 1:5b <- letters[1:5]c <- 1:10mat <- matr

【oracle sql错误】ORA-01795: 列表中的最大表达式数为 1000

select SOURCE_ID,FILTER_TEXT from TEXT_CENTER where SOURCE_ID in() in后面的括号里的数目超过1000条。 问题描述: SQL进行IN查询时,IN中的数据量不能超过1000条。 解决办法: 拆分:id in (1,2,3,4,5,,,,999) or id in(1000,1001,1002,1003,1004,,,,,,