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

news2024/11/17 16:23:18

容器 (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 指向容器对象的指针

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

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

相关文章

第 3 章 栈和队列(用递归函数求解迷宫问题(求出所有解))

1. 背景说明: 若迷宫 maze 中存在从入口 start 到出口 end 的通道,则求出所有合理解并求出最优解 迷宫示意图: 输入文本: 10 10181 3 1 7 2 3 2 7 3 5 3 6 4 2 4 3 4 4 5 4 6 2 6 6 7 2 7 3 7 4 7 6 7 7 8 11 18 8 2. 示例代码…

Ae 效果:CC Threads

生成/CC Threads Generate/CC Threads CC Threads(CC 编织条)效果基于当前图层像素生成编织条图案和纹理。可以用在各种设计中,如背景设计、图形设计、文字设计等。 ◆ ◆ ◆ 效果属性说明 Width 宽度 设置编织的宽度。 默认值为 50。值越大…

【计算机组成 课程笔记】3.1 算数运算和逻辑运算

课程链接: 计算机组成_北京大学_中国大学MOOC(慕课) 3 - 1 - 301-算术运算和逻辑运算(13-7--)_哔哩哔哩_bilibili 计算机的核心功能就是运算,运算的基本类型包括算数运算和逻辑运算。想要了解计算机是如何实现运算的,我…

linux免密登录报错 Bad owner or permissions on /etc/ssh/ssh_config.d/05-redhat.conf

问题:权限不对的 解决: 1.检查文件的所有者和权限。 确保文件的所有者是正确的。 运行以下命令来确定文件的所有者和权限: ls -l /etc/ssh/ssh_config.d/05-redhat.conf 通常情况下,SSH配置文件应该属于root用户。如果所有者不是…

HDLBits 练习 Always if2

Always if2 一个常见的错误:如何避免产生锁存器。 当设计一的电路的时候,你首先应该从电路的角度去思考。 我想要一个逻辑门我想要一个有着3和输入和3输出的组合逻辑电路。我想要一个后边跟着一个触发器的组合逻辑电路。 你必须不能先写代码&#xf…

VC++6.0下载安装使用教程

一、前言 微软原版的 VC6.0 已经不容易找到,网上提供的都是经过第三方修改的版本,删除了一些使用不到的功能,增强了兼容性。这里我们使用 VC6.0 完整绿色版,它能够支持一般的 C/C 应用程序开发以及计算机二级考试。 二、VC6.0 下…

设计模式大白话——适配器模式

适配器模式 概述示例适配器的种类小结 概述 ​ 适配器其实非常好理解,放到生活中来,我们身边处处都有这样的例子,最常见的是用的比较多的各种转接线(如:USB 转 Type-C),有了这个“适配器”&…

基于 kube-vip 部署 kubernetes 高可用集群

kube-vip 简介 kube-vip 是一个开源项目,旨在简化为 Kubernetes 集群提供负载均衡服务。 kube-vip 为 Kubernetes 集群提供虚拟 IP 和负载均衡器,用于控制平面(用于构建高可用集群)和 Kubernetes 服务类型,而无需依赖…

智己 LS6 用实力和你卷,最强 800v ?

2023 成都车展期间,智己 LS6 正式公布预售价格,新车预售价为 23-30 万元。新车会在 10 月份进行上市,11 月正式交付。 此前我们对智己 LS6 做过非常详细的静态体验,感兴趣的可点击此链接了解。 造型方面,新车前脸相比…

CNN(六):ResNeXt-50实战

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊|接辅导、项目定制 ResNeXt是有何凯明团队在2017年CVPR会议上提出来的新型图像分类网络。它是ResNet的升级版,在ResNet的基础上,引入了ca…

【C++】VS配置OpenCV/Libtorch环境

前言 本文是视频https://www.bilibili.com/video/BV1dp4y177L4的笔记。 OpenCV和Libtorch安装包:https://pan.baidu.com/s/1i3DqTcHFSC1rRDsIgYGCsQ?pwd8888 VS版本:2019 Opencv版本:3.4.1 Libtorch版本:2.0.1cu117 配置Open…

CUBLAS库入门教程(从环境配置讲起)

文章目录 前言一、搭建环境二、简单介绍三、 具体例子四、疑问 前言 CUBLAS库是NVIDIA CUDA用于线性代数计算的库。使用CUBLAS库的原因是我不想去直接写核函数。 (当然,你还是得学习核函数该怎么写。但是人家写好的肯定比我自己写的更准确!&…

利用MarkovJunior方法生成迷宫和图形的MATLAB演示[迷宫生成、贪吃蛇、地图生成、图案生成]

利用MarkovJunior方法生成迷宫和图形的MATLAB演示[迷宫生成、贪吃蛇、地图生成、图案生成] 0 前言1 介绍MarkovJunior2 迷宫生成2.1 深度优先迷宫生成2.2 广度优先迷宫生成 3 其它生成图案3.1 地牢地图3.2 贪吃蛇3.3 植物花 惯例声明:本人没有相关的工程应用经验&am…

Python爬虫抓取经过JS加密的API数据的实现步骤

随着互联网的快速发展,越来越多的网站和应用程序提供了API接口,方便开发者获取数据。然而,为了保护数据的安全性和防止漏洞,一些API接口采用了JS加密技术这种加密技术使得数据在传输过程中更加安全,但也给爬虫开发带来…

客路旅行(KLOOK)面试(部分)(未完全解析)

一面 用过Chatgpt的哪个版本,了解Chatgpt版本之间的差异吗 什么是优雅部署?newBing: 服务启动时,检查依赖的组件或容器是否就绪,如果不就绪,等待或重试,直到就绪后再注册到服务中心,对外提供服…

AcWing 844. 走迷宫 (每日一题)

给定一个 nm 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一…

WIFI模块的工作原理及AP模式和STA模式的区别

WiFi模块的运作原理: WiFi模块通常由两大核心组件构成:无线芯片和微处理器。无线芯片专注于处理无线信号的传送与接收,而微处理器则全面管理和调控WiFi模块的各项功能。数据传输过程中,无线芯片利用无线电波进行信号的交互。通过…

网络安全社区与资源分享: 推荐网络安全社区、论坛、博客、培训资源等,帮助从业者拓展人脉和知识。

第一章:引言 在当今数字化的世界中,网络安全问题变得愈发突出。随着各种新型威胁的涌现,网络安全从业者面临着持续不断的挑战。然而,正是因为这些挑战,网络安全社区应运而生,成为从业者们互相交流、学习和…

C语言常见字符串和内存函数详解

字符串和内存函数 1. 前言2. 求字符串长度2.1 strlen 3. 长度不受限制的字符串函数3.1 strcpy3.2 strcat3.3 strcmp 4. 长度受限制的字符串函数4.1 strncpy4.2 strncat4.3 strncmp 5. 字符串查找5.1 strstr5.2 strtok 6. 错误信息报告6.1 strerror 7. 字符操作函数7.1 字符分类…

windows使用vim编辑文本powershell

windows使用vim编辑文本 1、安装 chocolatey 包 以管理员身份打开 PowerShell 进行安装 Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(https://chocolatey.org/install.ps1))2、管理员身份打开 PowerShell 并使…