合宙Air724UG LuatOS-Air LVGL API--样式

样式
概念
样式用于设置对象的外观。LVGL 中的样式受 CSS 启发很大。样式是一个 lv_style_t 可以保存属性的变量,例如边框宽度,文本颜色等。与 class CSS 类似。并非必须指定所有属性。未指定的属性将使用默认值。可以将样式分配给对象以更改其外观。样式可以被任意数量的对象使用。样式可以级联,这意味着可以将多个样式分配给一个对象,并且每种样式可以具有不同的属性。例如,style_btn 可能会导致默认的灰色按钮,并且 style_btn_red 只能添加一个 background-color=red 以覆盖背景色。以后添加的样式具有更高的优先级。这意味着,如果以两种样式指定属性,则将使用后面添加的样式。如果未在对象中指定,则某些属性(例如,文本颜色)可以从父级继承。对象可以具有比普通样式更高优先级的局部样式。与 CSS(伪类描述不同的状态,例如 :hover)不同,在 LVGL 中,将属性分配给给定的状态。(即类与状态无关,但是每个属性都有一个状态)当对象更改状态时可以应用过渡。

样式的状态(States)
对象可以处于以下状态:

lvgl.STATE_DEFAULT --正常,已释放
lvgl.STATE_CHECKED --切换或选中
lvgl.STATE_FOCUSED --通过键盘或编码器聚焦或通过触摸板/鼠标单击
lvgl.STATE_EDITED --由编码器编辑
lvgl.STATE_PRESSED --已按下
lvgl.STATE_DISABLED --禁用
可以在每种状态和状态组合中定义样式属性。例如,为默认和按下状态设置不同的背景颜色。如果未在状态中定义属性,则将使用最佳匹配状态的属性。通常,它表示带有 lvgl.STATE_DEFAULT 状态的属性。如果即使对于默认状态也未设置该属性,则将使用默认值。

级联样式
不需要将所有属性设置为一种样式。可以向对象添加更多样式,然后让后来添加的样式修改或扩展其他样式的属性。例如,创建常规的灰色按钮样式,并为仅设置新的背景色的红色按钮创建新的样式。当在 CSS 中列出所有使用的类时,这是相同的概念。较晚添加的样式优先于较早的样式。让我们研究以下情况:

基本的按钮样式定义了默认状态为深灰色和按下状态为浅灰色
红色按钮样式仅在默认状态下将背景色定义为红色
在这种情况下,释放按钮时它将是红色的,因为在最后添加的样式(红色样式)中找到了完美的匹配。按下按钮时,浅灰色是更好的搭配,因为它完美地描述了当前状态,因此按钮将是浅灰色的。

零件(Parts)的样式
对象的零件可以有自己样式。例如,页面包含四个部分:

背景
可滚动部分
滚动条
边缘闪烁
有三种类型的对象部分的主体,虚拟和现实。
主要部分通常是对象的背景和最大部分。某些对象只有一个主要部分。例如,一个按钮只有一个背景。
虚拟小部件是实时绘制到主体小部件的其他小部件。它们后面没有“真实”对象。例如,页面的滚动条不是真实的对象,仅在绘制页面背景时才绘制。虚拟小部件始终具有与主要小部件相同的状态。如果可以继承该属性,则在转到父级之前还将考虑主体部分。真实小部件是由主对象创建和管理的真实对象。例如,页面的可滚动部分是真实对象。实际小部件的状态可能与主要小部件的状态不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值