首页 > 其他分享 >LVGL UI设计神器anyui之高阶组件

LVGL UI设计神器anyui之高阶组件

时间:2024-11-28 12:58:49浏览次数:12  
标签:anyui 滑块 状态 标签 UI 按键 组件 LVGL 高阶

破炉而出——LVGL UI设计神器 anyui 之高阶组件

孙悟空吃了大量的巧克力豆后,在太上老君的炼丹炉中憋了七七四十九天,最终破炉而出,练就了火眼金睛,继七十二变和筋斗云之后第三大本领,省去了取经路上无数麻烦。试想如果没有孙悟空的火眼金睛,唐僧被抓走的次数得翻几番。可见,好的装备对于打怪效率的提高有多重要。

anyui 在炼了七七四十九天之后,练就的不是火眼金睛,而是另一个打BOSS(BOSS总是有很多需求)的高级装备——高阶组件。

什么是高阶组件?

在说高阶组件之前,先说什么是非高阶组件。

LVGL提供了40+的组件,从简单的按键到复杂点的图标仪表盘等。这些都可以视为非高阶组件,也就是基础组件,基础组件的功能受限于LVGL的能力。

尽管LVGL提供的基础组件很丰富,但每个组件提供的功能也比较单一。在实际项目中有很多场景需要的功能用基础组件实现却比较麻烦。

举个例子:

空调的触控面板都会有一个控制风量的按键(如果你说空调遥控器都是实体按键,嗯,那就麻烦直接划到文章底部点个赞就可以离开了图片),点击风量按键的时候档位会依次在“低、中、高、自动、低……”变化,每个档位会显示一个标签显示当前档位和一个表现风量大小的图标。这个场景很常见吧?其实类似的按键还有模式等。在其它产品上这样的状态按键也比比皆是。

例子说完了,用LVGL的基础组件怎么实现?有攻城狮笑了:这连编程狗都能做,有什么难的,弄个按键,弄个标签,弄个图片,在按键点击事件中设置图片标签,balabala……对于手撸LVGL C代码的大神,我不敢问这个问题,唯有献上膝盖,只是怕膝盖不够用。但如果是这样,那对一个LVGL界面设计软件来说,有点失职。

目前大多数LVGL界面设计软件是通过自定义代码让用户去自己实现的。是的,自定义代码很灵活,想干嘛就干嘛,因为这跟手撸代码没太大差别(可能还不如直接手撸)。但是不是可以有更好的办法?LVGL UI设计软件不就是为了提高界面设计效率而生的吗?

anyui 的解决方案是——高阶组件,也就是今天的主角。

高阶组件是什么?

高阶组件是一系列基础组件的组合,通过基础组件定义高阶组件的外观,同时在基础组件的基础上进行扩展,使其具备状态自管理的一种复合组件。对于使用者来说,它整体就是一个组件。

我们来看看几个高频场景下的高阶组件。

状态按键

针对以上空调的场景,anyui 提供了一个高阶组件——“状态按键”。状态按键可以配置1到N个状态,每个状态可以配置相应的图片和标签,点击按键的时候,会依次在从一个状态到下一个状态,同时,显示当前状态的图片和标签。状态按键的外观是由按键、图片、标签等这些基础组件去配置的,但行为是预定义好的。先看看一个状态按键长什么样:
在这里插入图片描述

以上展示的这个状态按键是圆形的,你也可以改成方形的,或者带圆角的方形,背景也可以改成其它颜色,标签文字大小,位置,颜色等都可以改。例如:

在这里插入图片描述

再来看看状态设置:

在这里插入图片描述

上面我们只设置了两个状态,你可以添加更多状态。改变“当前状态”可以看到每个状态对应的变化。

如果用户界面再更复杂点,不止一个图片或标签呢?没关系,右键这个高阶组件,选择“编辑”,进入高阶组件的编辑界面。有更多的隐藏组件可以打开。状态按键支持最多3个图片和3个标签。这些图片和标签如何安放呢?也是在编辑界面里调整他们的相对位置。

在这里插入图片描述
如果打开所有的图片和标签,状态按键变成这个样子:
在这里插入图片描述
对应的属性如下:
在这里插入图片描述
改变“当前状态”就可以看到相应的变化。

标签滑块

如果用户不喜欢按键的方式呢?可能滑动的方式去调整更受欢迎。拖动一个滑块,每个滑块刻度表示不同的风量,当前刻度还高亮显示,另外显示一个表现风量大小的图片。这也是一种非常常见的场景。

anyui 提供了一个“标签滑块”,同样支持多个状态,即对应滑块多个刻度,每个状态同样可以配置1-3个图片和1-3个标签。另外,当前刻度的标签样式可以配置。标签滑块长这个样子,拖动滑块可以看到不同状态下的变化。

在这里插入图片描述

滑块方向

滑块不一定都是垂向的,也可能是横向的,没关系,在高阶组件的编辑里,设置滑块宽度大于长度,滑块自动调整为横向。

对于标签滑块,外观的配置和组件的编辑同状态按键,这里不再赘述。

数值滑块

另一种常见的滑动控制只有一个标签,就显示在当前滑块的刻度上。像这样:

在这里插入图片描述

是的,这就是 anyui 提供的另一种高阶组件——数值滑块。跟标签滑块非常类似,同样支持1-3个图片和1-3个标签。状态配置,组件编辑等跟标签滑块一样。

以上看到的都不需要写一行的自定义代码,这就是高阶组件所提供的功能。

好了,以上是 anyui 目前推出的几个高阶组件,希望这些高阶组件能让大家更高效地开发应用,毕竟陪女朋友也需要时间,发呆也需要时间。

故事到这里并没有结束,只是待续…… anyui 会针对常见的场景继续推出更多的高阶组件。

总结

anyui 使用高阶组件极大地简化了一些高频场景的界面设计工作。

对于高阶组件,你可以:

  • 定制外观

  • 隐藏和显示内部的某些组件

  • 选中、复制、删除和拖拽移动,和普通组件一样

不可以:

  • 改变它的行为

  • 增加、删除它的内部组件,或改变内部组件的次序

高阶组件官方介绍:

https://anyui.tech/docs/guide/hoc/intro

高阶组件微信公众号介绍

https://mp.weixin.qq.com/s/yicfKpBYsk1rkdENax25gg?token=1965018544&lang=zh_CN

标签:anyui,滑块,状态,标签,UI,按键,组件,LVGL,高阶
From: https://blog.csdn.net/weixin_37760107/article/details/144108195

相关文章

  • Brduino脑机连载(二十一)基于Brduino实现脑控无人机(简略步骤)
    在当今科技飞速发展的时代,脑机接口(Brain-ComputerInterface,BCI)技术作为一项极具创新性和前瞻性的领域,正逐渐改变着我们与机器的交互方式。其中,基于稳态视觉诱发电位(SSVEP)的脑控无人机技术更是吸引了众多科研人员和科技爱好者的目光。今天,我们将深入探讨如何基于Brduino实现......
  • Brduino脑机连载(二十)推荐了解-Brduino脑机开发模组介绍
    Brduino:脑机学习/开发平台在脑机接口(Brain-ComputerInterface,BCI)技术蓬勃发展的浪潮中,Brduino作为一款具有广泛影响力的脑机学习开发板(前身为BCIduino脑机模组(点击查看),我们做了改良之后重新发布(点击查看)),为科研人员、开发者以及爱好者提供了一个强大且灵活的工具,助力他们......
  • 基于Arduino Uno的温湿度传感器设计
    目录一、Arduinonano(一)PIN分析(二)Blink程序(Arduino基本程序)分析二、HIGH和LOW引脚的两种状态辨析三、UNO四、接线图五、代码部分Version1—-单显示屏(LCD1602AGeneral)Version2—-双显示屏方案(LCD1602AI2C+LCD1602AGeneral)五、IOT物联网方案(Esp8266实......
  • CODEIP: A Grammar-Guided Multi-Bit Watermark for Large Language Models of Code
    本文是LLM系列文章,针对《CODEIP:AGrammar-GuidedMulti-BitWatermarkforLargeLanguageModelsofCode》的翻译。CODEIP:用于大型代码语言模型的语法引导多位水印摘要1引言2前言3CODEIP4实验设置5结果与分析6相关工作7结论8局限性摘要随着大......
  • DynoEquip 变速器和减速器试验台
    创新减速器试验台:助力电气化动力系统和变速器开发电子邮箱: info@DynoEquip.com当代动力传动系统的电气化程度不断提高,这对仪器和测试系统的要求产生了重大影响。随着汽车行业向电气化动力系统转变,工程师们在确保所有组件无缝协作方面面临着新的挑战。这种转变要求进行早......
  • DynoEquip 电驱动总成和电驱桥试验台
    高效电驱桥试验台:优化集成或三合一电驱动总成性能电子邮箱: info@DynoEquip.com燃料电池电动汽车(FCEV)和电池电动汽车(BEV)在很大程度上都依赖于电力驱动,特别是作为这些车辆主要推进力来源的电力驱动装置。将电驱动总成与传动系统集成到电驱桥子系统中具有显著优势,包括提高......
  • DynoEquip 轴耦合动力总成试验台
    创新轴耦合动力总成试验台:移动式转毂连接,ADAS测试电子邮箱: info@DynoEquip.com原始设备制造商和供应商正在积极开发用于创新电动汽车(EV)动力总成系统概念的系统和部件。从历史上看,这些开发背后的主要驱动力是传动设计,包括两轮驱动(2WD)和四轮驱动(4WD)动力系统中使用的手动......
  • layui多文件上传
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><metaname="viewport"content="width=device-width,initial-scale=1"><title>Demo</title><!--请勿在项目正式环境中引用该layui.css地......
  • 命令行应用开发初学者指南:脚手架篇、UI 库和交互工具
    在日常的前端开发工作中,我们经常依赖各种命令行工具来提高效率和代码质量。例如,create-react-app和eslint等工具不仅简化了项目的初始化过程,还能自动执行代码检查和格式化任务。当我们使用这些工具时,它们通常会通过一系列互动式的问答来收集必要的信息,从而根据我们的选择进行相......
  • Brduino脑机连载(四)脑电范式软件大全(附源网页)
    Psychopy(点击查看源网址)特点:是一款免费的心理学实验设计软件,可用于创建各种脑电实验范式,如视觉、听觉、认知等任务。它具有强大的图形界面和丰富的刺激呈现功能,能够精确控制刺激的时间、位置、强度等参数,并且支持多种数据格式的输出,方便与其他脑电分析软件进行集成.适用场......