littlevgl教程 Linux,树莓派littlevGL系列教程:容器控件(lv_cont)
二 代码分析
用户可下载"圆弧对象(lv_arc)的使用"文章末尾的Demo工程(点击我直接下载),参考圆弧对象(lv_arc)的使用文章,将以下Demo代码复制到Demo工程test.c文件空白处.然后在test.c文件的create_test()函数中增加cont_test()函数测试。
void cont_test(void)
{
lv_obj_t * cont;
cont = lv_cont_create(lv_scr_act(), NULL);
lv_obj_set_auto_realign(cont, true); /*Auto realign when the size changes*/
lv_obj_align_origo(cont, NULL, LV_ALIGN_CENTER, 0, 0); /*This parametrs will be sued when realigned*/
lv_cont_set_fit(cont, LV_FIT_TIGHT);
lv_cont_set_layout(cont, LV_LAYOUT_COL_M);
lv_obj_t * label;
label = lv_label_create(cont, NULL);
lv_label_set_text(label, "Short text");
label = lv_label_create(cont, NULL);
lv_label_set_text(label, "It is a long text");
label = lv_label_create(cont, NULL);
lv_label_set_text(label, "Here is an even longer text");
} 我们先来看一下lv_obj_set_auto_realign函数,这个函数的主要作用是当对象大小更改后启用自动对齐,不过这个函数实际上是属于基本的对象的基本属性,因为这个函数是以lv_obj开头的,所以不属于容器控件的特殊函数。
然后lv_obj_align_origo函数在你设置更改大小自动对齐后,这个是必须要有的,因为这个函数设置的是自动对齐方式,第二个参数就是当前容器要与之对齐的对象,填写NULL时是以我们的窗口为对象对齐的,然后LV_ALIGN_CENTER这个我们之前也讲过是内部居中对齐,然后后面两个参数是偏移坐标,这里是选择不偏移。
然后lv_cont_set_fit函数是设置我们的容器与容器内部的对象的围绕方式或者大小,其中第二个参数主要有下面几种:
/**
* How to resize the container around the children.
*/
enum {
LV_FIT_NONE, /**< Do not change the size automatically*/
LV_FIT_TIGHT, /**< Shrink wrap around the children */
LV_FIT_FLOOD, /**< Align the size to the parent's edge*/
LV_FIT_FILL, /**< Align the size to the parent's edge first but if there is an object out of it
then get larger */
_LV_FIT_NUM
};
typedef uint8_t lv_fit_t; 根据我实际测试,只有LV_FIT_TIGHT效果最好,其它效果大家可以自己测试一下,不过我感觉是都没效果。。。
lv_cont_set_layout这是设置我们的容器的布局方式,同样的参数也是一个枚举类型,主要有下面的几种选择:
/** Container layout options*/
enum {
LV_LAYOUT_OFF = 0, /**< 无对齐 */
LV_LAYOUT_CENTER, /**< 居中对齐 */
LV_LAYOUT_COL_L, /**< 水平靠左*/
LV_LAYOUT_COL_M, /**< 水平居中*/
LV_LAYOUT_COL_R, /**< 水平靠右*/
LV_LAYOUT_ROW_T, /**< 垂直靠上*/
LV_LAYOUT_ROW_M, /**< 垂直居中*/
LV_LAYOUT_ROW_B, /**< 垂直靠下*/
LV_LAYOUT_PRETTY, /**< 行对齐*/
LV_LAYOUT_GRID, /**< 网格对齐*/
_LV_LAYOUT_NUM
};
typedef uint8_t lv_layout_t; 几种对齐方式有没有很熟悉呢?是的,就跟我们的Word或者Excel的表格中的文本对齐差不多,然后我们就往容器中添加文本了,大家可以先注释掉后两次的文本添加看一下大小,然后取消注释后再看一下容器的大小,事实正面容器的大小是在变化的,而我们没有进行任何的容器大小操作,所以容器就可以理解为装着某些对象的器件,但是这个器件会随着内部的对象的大小或者内容而改变大小。
OK,那么本节课先到这里,关于图表控件还有些不太常用的属性以及API,这里也就不再做介绍,不过相信随着你学习的深入,肯定自己也会摸索出很多方法的,那么我们下节课学习下拉列表控件,我们下节课再见!
littlevgl教程 Linux,树莓派littlevGL系列教程:容器控件(lv_cont)相关推荐
- 树莓派开发系列教程10——树莓派spi液晶屏支持(fbtft)
树莓派官方支持av及HDMI输出,板子上预留了一个csi接口的液晶显示屏,但是一直没有相应的模组出现.在很多应用场合我们需要一些小型的液晶屏显示一些基本的信息,所以小屏驱动很是必要. 在git ...
- 树莓派4B系列教程三 :优化配置
树莓派4B系列教程三 :优化配置 写在前面 树莓派4B内存增加 CPU温度控制 显存优化 Chromuim缓存转移 优化自启程序 Chromium插件安装 离线安装插件时遇到的问题 结语 写在前面 不 ...
- Linux求平方脚本,Linux Shell脚本系列教程(五):数学运算
这篇文章主要介绍了Linux Shell脚本系列教程(五):数学运算,本文讲解了使用let.(())和[]进行算术运算.使用expr进行算术运算.使用bc进行算术运算三种方法,需要的朋友可以参考下 在 ...
- Linux pwn入门教程,pwn堆入门系列教程1
pwn堆入门系列教程1 因为自己学堆的时候,找不到一个系统的教程,我将会按照ctf-wiki的目录一步步学下去,尽量做到每周有更新,方便跟我一样刚入门堆的人学习,第一篇教程研究了4天吧,途中没人指导. ...
- python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片
Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...
- linux php环境搭建 图文教程,linux php环境搭建教程
1) 安装依赖包yum -y install wget vim pcre pcre-devel openssl openssl-devel \libicu-devel gcc gcc-c++ auto ...
- php5.4 教程,linux php5.4 装置教程_后端开发
linux php5.4装置要领:起首装置apache并解压php:然后举行编译装置:接着将"php.ini-production"复制到lib目次下并改名为"php.i ...
- python网络爬虫系列教程_Python网络爬虫系列教程连载 ----长期更新中,敬请关注!...
感谢大家长期对Python爱好者社区的支持,后期Python爱好者社区推出Python网络爬虫系列教程.欢迎大家关注.以下系列教程大纲,欢迎大家补充.视频长期连载更新中 --------------- ...
- python系列教程_python基础学习系列教程2-进阶之路中绕不开的知识点。
本文是在上一篇的基础上编写的,若要查看见:雨滴测试:python基础系列教程1-可能是你见过的最通俗易懂的教程zhuanlan.zhihu.com 五. python函数 所谓的函数,就是具有特定功 ...
最新文章
- 刻意练习:LeetCode实战 -- Task07. 合并两个有序链表
- linkerd——针对java的为微服务提供可靠性的proxy,服务发现重试LB等
- 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )
- 如何调试程序的后台作业
- Spring4学习笔记
- 【JSP】jsp报错:Syntax error, insert } to complete MethodBody
- hbase1.1.1 连接集群_HBase-1.0.1学习笔记(一)集群搭建
- selenium使用浏览器隐私模式加载网站
- MyBatis学习总结(7)——Mybatis缓存
- sql server重命名_在Linux上SQL Server中重命名逻辑和物理文件名
- Codeforces 165D Beard Graph 边权树剖+树状数组
- mysql 常用函数循环_mysql 常用函数
- Oracle日期函数TRUNC
- 微信小程序实现输入车牌号码的功能(附效果图)
- 使用golang实现对请求签名和验签
- 学习GIT的一个小游戏
- 虚拟主机共享IP地址
- IT经理的两条职业路做管理还是管理咨询
- Linux服务器如何添加永久路由
- Linux系统如何安装Python?新手教程