LVGL UI设计神器助你高效开发嵌入式UI应用——v0.33.1发布


前言

随着物联网的到来,凯文・凯利所预言的 “屏读” 时代也已来临。除了手机、平板电脑这类类似个人电脑的设备之外,越来越多的嵌入式设备也将配备触控显示屏。在资源有限的嵌入式设备上构建一个出色的用户界面(UI)应用并非易事,整个传统流程着实耗时耗力。
LVGL 是一个成熟、流行且设计精良的开源 UI 库,适用于资源有限的嵌入式设备。越来越多的人正在使用它。然而,从头开始手动创建一个 LVGL 应用仍然需要大量的工作。因此,一些针对 LVGL 的设计工具应运而生。用户可以通过拖放组件来设计自己的 UI,然后就能一键生成可编译且可运行的 C 语言代码。此外,用户还可以启动模拟器来预览它在设备中的显示效果。这确实提高了效率,节省了大量的时间和精力。
在这里,我要介绍一款基于 LVGL 的 UI 设计神器 ——Anyui。它免费、跨平台,无需注册,甚至还支持网页版,值得一试。

一、Anyui 是什么?

Anyui 是一款基于桌面的嵌入式设备 UI 设计工具,目前支持 LVGL,LVGL 是一款适用于资源有限设备的轻量级流行 UI 框架。你只需将组件拖放到画布(屏幕)上,更改它们的属性和样式,Anyui 就能一键为你生成可编译且可运行的源代码(C 代码)。你还可以运行模拟器来预览它在设备中的样子。通过这种方式,你省去了传统方式中编写大量 C 语言代码、构建项目、将其刷入设备并最终验证一切是否正常运行的繁琐步骤。只需专注于你的设计,其余的就交给 Anyui 吧。同时,Anyui 提供了与 Sketch(一款非常流行的设计工具)类似的使用体验。Anyui 所做的一切努力都是为了提高你的工作效率。
目前,Anyui 支持 Windows、Mac 系统,并且还有一个基于网页的试用平台,你无需下载任何软件包就可以在线试用。而且,它是免费的,也不需要任何注册。只需下载并安装,就可以开始使用了。

Anyui支持的特性:

  • Windows、Mac 和网页版
  • 支持LVGL v8/v9
  • 语言切换(中文和英文)
  • 丰富的内置组件
  • 模板组件
  • 高阶组件(状态自管理)
    • 多状态按键
    • 标签滑块
    • 数值滑块
    • 多选框/单选框
    • 状态栏
    • 导航栏
    • 弹出抽屉
  • 全局状态栏
  • 撤销 / 重做(历史操作)
  • 快速复制
  • 自动对齐
  • 画布缩放
  • 组件锁定 / 隐藏
  • 纵向 / 横向模式
  • 新版本检查
  • 用户自定义的界面布局
  • 组件样式刷
  • 拖动选择组件
  • 动画
  • 窗口管理
  • 自定义屏幕分辨率
  • 圆形显示屏
  • 屏幕滑动操作
  • 全量、增量、迷你编译模式
  • gif动画图片
  • 全局组件搜索
  • 全屏模式
  • 等等……

二、v0.33.1 版本的新功能和修复

你可以在 此处 下载该版本。
演示视频:v0.33.0新特性演示视频
在这里插入图片描述

  • 修复:16位色深下的图像显示错误
  • 修复:将部件拖入容器时图层发生变化的问题
  • 修复:当其他部件被拖入容器并发生重叠时,组件背景色可能被改变的问题
  • 修复:屏幕背景不能被改变的问题
  • 其它修复和优化

总结

Anyui 正在快速迭代,将会添加越来越多的功能。本章介绍了最新发布的 v0.33.1 版本中引入的新功能。

【RT-Thread作品秀】基于 lvgl 的漏电保护装置校验仪 UI 界面设计作者:赵加文 概述低压漏电引起的各种安全事故已经严重影响到生产生活,威胁到生命财产安全。而解决这一现象的设备就是漏电保护开关,漏电保护开关的漏报率、误报率是很关键的参数,因此有必要对漏电保护开关的性能进行测试。因此,漏电保护装置校验仪是很有必要的。 开发环境硬件:ART-Pi 开发板,正点原子 480*272 4.3寸 RGB 屏幕 RT-Thread版本:4.0.3 开发工具及版本: RT-Thread Studio 2.0.0 :编写 编译 调试 下载代码 STM32CubeMX 6.1.0: codeBlocks 20.03:用于在 PC 机上进行 lvgl 模拟 MCU_Font V2.0: 用于转换中文,然后使得中文能够在 lvgl 中显示 RT-Thread使用情况概述在 UI 设计的整个过程中,使用到 RT-Thread 的部分主要有以下几个方面: 内核部分:动态线程,信号量 组件部分:PIN 设备、I2C 设备、TOUCH 设备框架、LCD 设备框架、finsh 组件 软件包部分:littlevgl2rtt、gt9147 硬件框架软件框架说明系统整体流程图: 软件模块说明整个UI 系统设计所遵循的是 lvgl 图形库的一个回调函数的机制,将各个事件与对应的操作所绑定起来,当滑动滑条时对应的滑条的回调函数就会被触发,那么就会执行滑条回调函数的内容,当滑动点击文本框时,文本框对应的回调函数就会被触发,进而创建键盘的控件,通过键盘输入所需要的数据。 演示效果图片展示: 演示视频: 比赛感悟这次参赛,之前还没有使用过 RT-Thread studio 这个集成开发环境,这次在使用 ART-Pi 的时候全程是使用 RT-Thread studio 这个开发环境,在使用的过程中也碰到了很多问题,有时候明明配置了相关组件,但是保存之后,并没有代码添加到工程里。现在也没有弄明白问题出在哪里,虽然存在着这里问题,但是在使用的过程中,还是非常的方便,整个开发过程就如同搭积木一样方便,与 RTT操作系统贴合的非常的紧密。 除此之外,便是在使用 lvgl 的过程中碰到了很多的问题,现在网上的教程基本是 lvgl v6 版本的教程,关于 lvgl v7 版本的教程很少,而且 v6版本与 V7 版本的 API 相差很大,不能按照 V6 版本来使用 V7 ,在这个过程中摸索了好多,同时也感受到了 lvgl 的魅力,使用在嵌入式系统上是非常不错的选择。
LVGL UI Editor 是一个专为 LVGL(Light and Versatile Graphics Library)图形库设计的用户界面编辑工具,旨在帮开发者快速构建高质量的嵌入式图形用户界面。它提供了直观的拖放式操作界面,允许用户通过可视化方式添加和配置各种控件、动画以及样式,而无需深入编写代码[^1]。 ### 下载与安装 您可以访问该项目的源码托管平台进行下载: - **项目地址**:[https://gitcode.com/open-source-toolkit/c61a2](https://gitcode.com/open-source-toolkit/c61a2) 该编辑器是开源项目的一部分,因此通常支持多种开发环境,并且可以根据需求自行编译或直接下载已发布的版本。 ### 使用指南 #### 1. 界面布局 LVGL UI Editor 提供了类似于现代 IDE 的多窗口设计,包括: - 左侧面板列出所有可用的小部件(Widgets),例如按钮、滑块、标签等; - 中央区域为主编辑画布,用于拖拽和排列组件; - 右侧面板提供属性编辑功能,可调整控件的位置、尺寸、颜色、字体等样式参数。 #### 2. 创建 GUI 设计 在编辑器中,只需将所需小部件从左侧拖动到中央画布上,即可开始布局设计。每个控件都可以通过右侧面板进行详细配置,如设置事件回调、绑定变量、调整动画效果等。此外,还可以使用“预览”功能查看界面在实际设备上的显示效果[^1]。 #### 3. 导出代码 完成设计后,可以点击导出按钮生成适用于目标平台的 C 或 C++ 源码。这些代码可以直接集成到您的嵌入式项目中,并配合 LVGL 图形库运行于 MCU 上。 #### 4. 调试与优化 为了进一步提升性能和用户体验,建议结合 LVGL 官方文档对生成的代码进行调试和优化。例如,合理管理内存资源、减少不必要的重绘操作、利用缓存机制等方法都能显著改善界面响应速度和流畅度[^2]。 #### 示例代码结构 以下是基于 LVGL UI Editor 生成的典型初始化代码片段: ```c #include "lvgl/lvgl.h" #include "ui/ui.h" int main(void) { // 初始化 LVGL 库 lv_init(); // 初始化显示驱动 my_disp_init(); // 初始化输入设备(如触摸屏) my_indev_init(); // 创建默认屏幕并加载 UI ui_init(); while (1) { lv_task_handler(); // 处理 LVGL 内部任务 usleep(5000); // 控制刷新频率 } return 0; } ``` ### 版本更新与社区支持 由于这是一个活跃发展的开源项目,定期检查 GitHub/Gitee 页面以获取最新版本和 bug 修复非常重要。同时,也可以参与官方论坛或 Discord/Slack 社区讨论相关技术问题,分享经验和技巧。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值