当前位置: 首页 > news >正文

合宙Air724UG LuatOS-Air LVGL API控件--容器 (Container)

容器 (Container)
在这里插入图片描述

容器是 lvgl 相当重要的一个控件了,可以设置布局,容器的大小也会自动进行调整,利用容器可以创建出自适应成都很高的界面布局。

代码示例
– 创建容器
cont = lvgl.cont_create(lvgl.scr_act(), nil)
lvgl.obj_set_auto_realign(cont, true)
lvgl.obj_align(cont, nil, lvgl.ALIGN_CENTER, 0, 0)
lvgl.cont_set_fit(cont, lvgl.FIT_TIGHT)
lvgl.cont_set_layout(cont, lvgl.LAYOUT_COLUMN_MID)

– 添加标签
label = lvgl.label_create(cont, nil)
lvgl.label_set_text(label, “Short text”)

label = lvgl.label_create(cont, nil)
lvgl.label_set_text(label, “It is a long text”)

label = lvgl.label_create(cont, nil)
lvgl.label_set_text(label, “Here is an even longer text”)
创建
容器是通过函数 lvgl.cont_create 创建的。几乎所有的控件创建函数都是需要两个参数,第一个参数是父对象,通常这个控件传的都是容器控件。因为控件父子关系展现的是一个包含关系,在一个 按钮 里创建另一个按钮,虽然也可以这么做,但是从正常角度来看很少有这种需求,毕竟不是谁家门前都有两棵枣树的。

cont = lvgl.cont_create(lvgl.scr_act(), nil)
布局
这个概念是容器控件的一个重点,自动添加到容器内的控件是在左上角叠加显示的。

function img(cont, path)
local pic = lvgl.img_create(cont, nil)
lvgl.img_set_src(pic, path)
end

– 创建主容器
cont = lvgl.cont_create(nil, nil)
lvgl.disp_load_scr(cont)

img(cont, “/lua/png50.png”)
img(cont, “/lua/png40.png”)
img(cont, “/lua/png30.png”)
这段代码首先创建了一个容器,然后向容器添加了三张图片,依靠容器的默认布局显示内容如下:
lvgl.LAYOUT_OFF 也就是没有布局, 所有内容全部叠加显示
在这里插入图片描述

我们再来看另一种常用的布局 lvgl.LAYOUT_CENTER 居中布局
在这里插入图片描述

接着看看剩下的布局 lvgl.LAYOUT_COLUMN_LEFT 元素靠左按列排布
在这里插入图片描述

lvgl.LAYOUT_COLUMN_MID 元素居中按列排布
在这里插入图片描述

lvgl.LAYOUT_COLUMN_RIGHT 元素靠右按列排布
在这里插入图片描述

lvgl.LAYOUT_GRID 元素按顶部高度行排列
在这里插入图片描述

lvgl.LAYOUT_PRETTY_BOTTOM 元素按照底部高度等距排列
在这里插入图片描述

lvgl.LAYOUT_PRETTY_MID 元素按照居中高度等距排列

lvgl.LAYOUT_PRETTY_TOP 元素按照顶部高度等距排列

lvgl.LAYOUT_ROW_BOTTOM 元素靠底排列

lvgl.LAYOUT_ROW_MID 元素居中排列

lvgl.LAYOUT_ROW_TOP 元素靠顶排列

以上就是容器所有的布局方式。

自适应
容器的另一个特点就是自适应,可以根据子对象或者父对象自动更改容器大小。

lvgl.FIT_NONE – 不会自动更改大小
lvgl.FIT_TIGHT – 将容器紧缩在内容周围
lvgl.FIT_PARENT – 父容器的大小减去 pad_top/bottom/left/right 后的空间。
lvgl.FIT_MAX – 容器至少是父容器大小
API
lvgl.cont_create
调用 lvgl.cont_create(par, copy)
功能 创建一个容器对象
返回 指向创建的容器的指针
参数
par 指向对象的指针, 它将是新容器的父对象
copy 指向容器对象的指针, 如果不为 nil, 则将从其复制新对象
lvgl.cont_set_layout
调用 lvgl.cont_set_layout(cont, layout)
功能 设置容器的布局方式
参数
cont 指向容器对象的指针
layout 容器的布局方式
lvgl.cont_set_fit4
调用 lvgl.cont_set_fit4(cont, left, right, top, bottom)
功能 分别设置容器四个方向上的拟合方式
参数
cont 指向容器对象的指针
left 左边的拟合方式
right 右边的拟合方式
top 顶部的拟合方式
bottom 底部的拟合方式
lvgl.cont_set_fit2
调用 lvgl.cont_set_fit2(cont, hor, ver)
功能 设置水平和垂直方向的拟合方式
参数
cont 指向容器对象的指针
hor 水平方向上的拟合方式
ver 垂直方向上的拟合方式
lvgl.cont_set_fit
调用 lvgl.cont_set_fit(cont, fit)
功能 一次性设置容器四个方向上的拟合方式
参数
cont 指向容器对象的指针
fit 容器四个方向上的拟合方式
lvgl.cont_get_layout
调用 lvgl.cont_get_layout(cont)
功能 获取容器的布局
返回 容器当前的布局方式
参数
cont 指向容器对象的指针
lvgl.cont_get_fit_left
调用 lvgl.cont_get_fit_left(cont)
功能 获取容器左边的拟合方式
返回 获取容器左边的拟合方式
参数
cont 指向容器对象的指针
lvgl.cont_get_fit_right
调用 lvgl.cont_get_fit_right(cont)
功能 获取容器右边的拟合方式
返回 获取容器右边的拟合方式
参数
cont 指向容器对象的指针
lvgl.cont_get_fit_top
调用 lvgl.cont_get_fit_top(cont)
功能 获取容器顶部的拟合方式
返回 获取容器顶部的拟合方式
参数
cont 指向容器对象的指针
lvgl.cont_get_fit_bottom
调用 lvgl.cont_get_fit_bottom(cont)
功能 获取容器底部的拟合方式
返回 获取容器底部的拟合方式
参数
cont 指向容器对象的指针

相关文章:

合宙Air724UG LuatOS-Air LVGL API控件--容器 (Container)

容器 (Container) 容器是 lvgl 相当重要的一个控件了,可以设置布局,容器的大小也会自动进行调整,利用容器可以创建出自适应成都很高的界面布局。 代码示例 – 创建容器 cont lvgl.cont_create(lvgl.scr_act(), nil) lvgl.obj_set_auto_re…...

代码随想录训练营第41天|343.整数拆分,96.不同的二叉搜索树

代码随想录训练营第41天|343.整数拆分,96.不同的二叉搜索树 343.整数拆分文章思路代码 96.不同的二叉搜索树文章思路代码 总结 343.整数拆分 文章 代码随想录|0343.整数拆分 思路 二刷不难 d p [ i ] M a x j ( m a x ( j 1 , d p [ j ] ) ∗ ( i − j ) ) \…...

高防服务器与云防产品都适用哪些情况

高防服务器与云防护产品(如高防IP,高防CDN)都可以对DDOS、CC等攻击进行防护,在现如今的互联网市场上,不法分子经常会通过DDOS、CC等攻击服务器,干扰业务正常运行,以此来获得利益。 高防服务器是…...

【广州华锐互动】AR远程连接专家进行协同管理,解放双手让协同更便捷

AR远程协同系统是一种基于AR技术,实现远程设备维修和技术支持的系统。该系统通过将虚拟信息叠加在现实世界中,实现对设备的全方位监控和管理,并可以通过AR眼镜等终端设备,实时查看设备的各项数据和信息,为设备维修提供…...

PNG图片压缩原理

png??png的图片我们每天都在用,可是png到底是什么,它的压缩原理是什么? 很好,接下来我将会给大家一一阐述。 什么是PNG PNG的全称叫便携式网络图型(Portable Network Graphics)是…...

[ Linux Audio 篇 ] Linux Audio 子系统资料集锦

Linux Audio 子系统资料 背景OSS VS ALSAALSA 驱动ALSA libALSA Plugin音频延迟音频调试音频书籍 背景 最近需要准备Linux Audio 相关的PPT,于是将以往的知识点和遇到的问题进行整理和梳理,以便向大家讲解。同时,还整理了在这个过程中发现的…...

VR全景对行业发展有什么帮助?VR全景制作需要注意什么?

引言: 虚拟现实(Virtual Reality,简称VR)早已不再是科幻电影的概念,而是在以惊人的速度改变着我们的世界。VR全景,作为其中的重要组成部分,正为多个行业带来了全新的机遇。 一、VR全景的应用领…...

Unity网络请求队列

引子 最近的一个项目中由于某个需求,需要多次请求后台接口数据,就自己封装了一下网络请求的队列;刚刚好给大家分享一下,互相交流学习 简述 Unity 的网络请求队列是由 UnityWebRequestQueue 类实现的。这个类继承自 MonoBehaviou…...

【Spring Boot】使用XML配置文件实现数据库操作(一)

使用XML配置文件实现数据库操作(一) 1.SQL映射文件 SQL映射文件就是我们通常说的mapper.xml配置文件,主要实现SQL语句的配置和映射,同时实现Java的POJO对象与数据库中的表和字段进行映射关联的功能。 1.1 mapper.xml的结构 下…...

PMP中常用英文术语

常用术语(五) Project 项目 为完成一个唯一的产品或服务的一种一次性努力。 Project Charter 项目许可证 由高级管理部门提供的一个文档,它给项目经理特权把组织的资源应用到项目工作中。 Project Communication Management 项目沟通管理 项目…...

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

文章目录 前言SPEED_BOUNDS_PRIORI_DECIDER功能简介SPEED_BOUNDS_FINAL_DECIDER功能简介SPEED_BOUNDS_PRIORI_DECIDER相关配置SPEED_BOUNDS_FINAL_DECIDER相关配置SPEED_BOUNDS_DECIDER流程将障碍物映射到ST图中ComputeSTBoundary(PathDecision* path_decision)ComputeSTBounda…...

score_inverse_problems运行环境,pycharm重新安装,jax,jaxlib的GPU版本安装-230831

尝试运行https://github.com/yang-song/score_inverse_problems pycharm2019不支持python3.10,其实后来我用来3.8…… pycharm2022.3.3的安装,涉及激活(淘宝5元),搜狗拼音输入(shift不能切换输入法&#x…...

VSC++: 奇怪的风吹

void 奇怪的风吹() {//缘由https://ask.csdn.net/questions/1062454int aa[]{15, 30, 12, 36, 11, 20, 19, 17, 16, 18, 38, 15, 30, 12, 36, 11, 20, 19, 17, 16, 18, 38, -1},j 0, a 0, y 0, z 0;while (aa[j] > 0){if (j && aa[j] > 35 || aa[j] < 15)…...

被动操作系统指纹识别的强大功能可实现准确的物联网设备识别

到 2030 年&#xff0c;企业网络和互联网上的物联网设备数量预计将达到290 亿。这种指数级增长无意中增加了攻击面。 每个互连设备都可能为网络攻击和安全漏洞创造新的途径。Mirai 僵尸网络通过使用数千个易受攻击的 IoT 设备对关键互联网基础设施和热门网站发起大规模 DDoS 攻…...

QT/C++获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(二)通过Windows Server (WMI)查询

Qt/C调用windows Api库通过wmi的方式查询电脑能获取更多详细信息&#xff0c;也更加合理有技术性。 建议使用MSCV编译器&#xff0c;如MSCV 2017 ,Qt版本 : 5.13.1 目录导读 关于 WMI示例&#xff1a;创建 WMI 应用程序示例&#xff1a;打印Wmi执行的查询项的所有属性头文件引用…...

自建音乐服务器Navidrome之一

这里写自定义目录标题 1.1 官方网站 2. Navidrome 简介2.1 简介2.2 特性 3. 准备工作4. 视频教程5. 界面演示5.1 初始化页5.2 专辑页 前言 之前给大家介绍过 Koel 音频流服务&#xff0c;就是为了解决大家的这个问题&#xff1a;下载下来的音乐&#xff0c;只能在本机欣赏&…...

ACL 访问控制 过滤数据 维护网络安全(第七课)

一 ACL 简介 ACL是Access Control List(访问控制列表)的缩写,是一种用于控制文件、目录、网络设备等资源访问权限的方法。ACL可以对每个用户或用户组设置不同的访问权,即在访问控制清单中为每个用户或用户组指定允许或禁止访问该资源的权限。它通常由一系列规则组成,规则…...

3D视觉测量:面对面的对称度 点对(附源码)

文章目录 0. 测试效果1. 基本内容2. 3D视觉测量对称度测量思路3. 代码实现4. 参考文章目录:3D视觉测量目录微信:dhlddxB站: Non-Stop_目标:通过3D视觉方法计算面对面的对称度0. 测试效果 数据说明:此测试点云是通过UG建模,Meshlab降采样得到,数据比较理想,仅作为测试使用…...

无涯教程-JavaScript - RANK函数

RANK函数取代了Excel 2010中的RANK.EQ函数。 描述 该函数返回数字列表中数字的等级。数字的等级是其相对于列表中其他值的大小。 如果对列表进行排序,则数字的排名将是其位置。 语法 RANK (number,ref,[order])争论 Argument描述Required/OptionalNumberThe number whose…...

蓝牙发展现状

目录 一、产品分类1、Bluetooth经典2、Bluetooth低能耗(LE)3、二者差异 二、出货量三、未来需要加强的方向四、技术行业细分五、学习资料1、蓝牙官网2、大神博客——于忠军 一、产品分类 1、Bluetooth经典 Bluetooth Classic无线电&#xff0c;也被称为Bluetooth 基本速率/增强…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...