LVGL深度理解工作中实际项目开发思维(样式与属性之控件结构篇)

        想要讲样式就不能只讲样式,我们大致将讲解思路分为,控件结构==>样式分类==>控件状态==>样式优先级==>如何设计程序。

        在开始讲样式概念之前,我们还得为之前对象基础篇收收尾,我们通过前面几篇的讲解,我们大致知道了,lvgl的每一种控件都是以lv_obj_create所创建的基础对象为模板分化而来,具体是怎么分化的呢,我们接下来细讲。

        就像人体当中的干细胞,其分化后的神经细胞、肌肉细胞,他们虽然保留了部分干细胞特征与结构,如细胞核、细胞膜等等,但也会异化出其他特征与结构,比如血细胞就会异化掉细胞核。

        而在LVGL当中,一个控件其实也是像细胞一样有很多部件组成,这些部件就如同细胞当中的细胞核、细胞质、细胞膜,当进行异化时,就可能多出一些部件或者少了部分部件。

        而LVGL开发者通过改变样式,增加或者减少部件,使得分化为多种控件。我们在LVGL一个控件大体可以分为以下结构:主体、滚动条、指示器、旋钮、选择部分、相同部件、刻度、光标。

        这些部件,尤其是后面几个部件看着有点抽象,我们来解释跟举例这些都是什么。

        主体:顾名思义,主体就是一个控件主要部分,也就是我们在屏幕上第一眼看到的部分。

        滚动条:就是我们常见的滚动条,当一个控件其宽或者高超出其父容器的宽高后,默认情况下,会自动创建滚动条。

        这两个部分也是最常用的部分,几乎所有控件都包含这两个部分。

        指示器:例如进度条,主体就是背景,指示器就是显示我们具体设置的值所显示的部分,扯起来有点抽象,还是上图吧!

        旋钮:就是可以拖动的按钮,列如滑块中的按钮,文字描述还是较为抽象,直接上图!

        选择部分:这个就是被选中的部分,列如在滚轮控件中被选择的部分,直接上图!

        相同部分:就是具有很多且特征相同的部分,如键盘当中的按键、表格当中的单元格。

        刻度:这个就好理解了,仪表盘上的刻度。

        光标:也非常好理解,输入框当中的光标。

        确保大家能够完全理解这些部件的具体位置,还是上百问网的描述吧!

        部件差不多就讲到这里,后续在讲其他控件时,会陆续提到。为什么将样式之前,要讲部件呢?

        因为样式其实就是给一个控件的部件设置的,列如我们想要设置一个基础对象背景为红色,进度条为蓝色,我们居然可以使用同一个函数lv_obj_set_style_bg_color来分别设置这两部分,只需要最后一个参数部件选择不同,即可实现这个功能,代码与效果如下:

  lv_obj_t *obj = lv_obj_create(lv_scr_act());

  lv_obj_set_width(obj, 100);

  lv_obj_set_height(obj, 100);

  lv_obj_set_style_bg_color(obj, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);//核心,设置主体背景

  lv_obj_set_style_bg_color(obj, lv_color_hex(0x0000FF), LV_PART_SCROLLBAR | LV_STATE_DEFAULT);//核心,设置滚动条背景



  lv_obj_center(obj);

  lv_obj_t *obj1 = lv_obj_create(obj);

  lv_obj_set_style_bg_color(obj1, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);

  lv_obj_set_width(obj1, 10);

  lv_obj_set_height(obj1, 300);

        由上面的例子,我们不难理解,设置控件样式其实就是给控件部件设置样式,也就能理解为什么只是增加部件,则会异化出新的控件,部件是LVGL至关重要的一环。

        最后,如果想更好的理解样式运用,一定要理解好部件这部分,这是一切样式设置的开始,可以说与控件状态一起奠定了后续操作的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值