试用 LVGL Pro,一套完整的工具包,助您高效构建、测试、分享和交付 UI!
LVGL
教程

LVGL Pro 项目结构与命名指南

如何在 LVGL Pro Editor 中组织资源、命名控件并编写可复用的 XML。

费利克斯·比戈费利克斯·比戈6 分钟阅读
LVGL Pro 项目结构与命名指南

LVGL Pro 编辑器是嵌入式 UI 开发的强大工具,但再好的工具也需要良好的工作流程来支撑。缺乏合理的结构,小项目也会迅速演变成 XML 混乱、资源命名冲突的维护噩梦。 本文汇总了 LVGL Pro 的最佳实践,帮助你构建更整洁、更专业的界面。

1. 命名规范#

一致性至关重要。当项目增长到数十个屏幕和数百个资源时,清晰的命名能让你不再为找文件而头疼。

项目与资源命名#

  • 资源: 始终使用描述性前缀。
    • 图片: icon_homeimg_background
    • 字体: 使用 font_size_weight 格式(例如 font_16_bold)。在管理大量不同尺寸和格式的字体时,这一点尤为重要。
项目命名

不要将项目命名为 lvgl,这会与库本身产生命名空间冲突。请选择与你的产品相关的唯一名称。

样式与主题#

前缀命名有助于在编辑器中快速筛选,同时让生成的代码更清晰。

  • 样式: 使用 style_ 前缀。如果支持多主题,加入主题名称:style_dark_buttonstyle_light_button
  • Subjects: 使用 subject_ 前缀(例如 subject_settings)。

控件#

为了区分组件和控件,使用 wd_ 前缀:

  • wd_menuwd_statusbarwd_clock

2. 资源管理#

将原始源文件和生成代码混放在一起,很容易导致误删。

推荐结构: 将原始 .png 文件放在 images 目录下的专用子文件夹中。

images
    • icon_home_20dp.png
    • img_background.png
  • icon_home_20dp.c生成的输出文件
  • img_background.c
小贴士

文件名中始终包含尺寸信息(例如 _20dp),方便管理多种分辨率的图标。

3. 架构:屏幕、组件与控件#

不要把所有内容都堆在根目录。使用 Add New Component / Widget / Screen 工作流,编辑器会自动将文件组织到子文件夹中,保持项目结构清晰可导航。

Add New Screen 按钮
使用 Add New 工作流保持项目结构整洁

生成文件的"黄金法则"#

  • 需要修改? 修改源 XML 文件。
  • 需要自定义行为? 使用提供的 API、外部逻辑钩子或自定义控件。
不要编辑生成的文件

对生成的 C 文件所做的任何手动修改,都会在你点击编辑器中的 "Export Code" 时丢失。

4. 编写整洁、可复用的 XML#

XML 的编写方式决定了界面的灵活程度。

避免内联样式#

内联样式会使 XML 臃肿且难以维护。应该定义可复用的样式。

内联样式
<lv_obj style_bg_color="0x000000" style_bg_opa="255" />
xml
可复用样式
<styles>
   <style name="style_main_bg" bg_color="0x000000" bg_opa="255" />
</styles>
<lv_obj>
   <style name="style_main_bg" />
</lv_obj>
xml

智能组件尺寸设置#

要让组件真正可复用,避免"双重锁定"尺寸。如果容器和子元素都设置了固定宽度,组件就会变得僵硬。

  • 不推荐: 组件根元素为 content 宽度,子元素为 420px。(难以调整大小)
  • 推荐: 组件根元素为 420px,子元素为 100%。(子元素随组件缩放)

5. 组件 API 与状态安全#

构建自定义组件时,注意不要覆盖编辑器的内部属性。

  • 为 API 添加文档: 使用 help 属性,让团队成员了解每个属性的用途:
<api name="text" type="string" help="Sets the label text of the header" />
xml
  • 保持默认值干净: 避免在组件根元素上覆盖默认标志(如 checked="true")。最好在将组件放置到屏幕上时再设置这些特定状态。
警告

不要使用 name 作为 API 属性名。它经常与编辑器内部逻辑冲突。

了解更多#

如需深入了解本文涵盖的内容,请查阅 LVGL Pro 官方文档。

DocsXMLOverview
Full documentation

了解更多关于基于 XML 的 UI 定义、组件架构和代码生成的内容,请查阅完整的 LVGL Pro 文档。

总结#

遵循这些模式(一致的前缀命名、分离原始资源、使用可复用样式),可以确保你的 LVGL Pro 项目在未来数年内都易于维护。

关于作者

费利克斯·比戈
费利克斯·比戈

LVGL Services 嵌入式界面开发工程师

LVGL Services 的嵌入式界面开发工程师,负责实现客户的 UI 设计,并帮助团队使用 LVGL Pro 构建可用于生产的高质量界面。

认识博客背后的作者们

了解那些分享 LVGL 知识的优秀作者们

查看作者

订阅我们的通讯 不错过任何关于 LVGL 的新闻。我们每月最多发送 2 封邮件。

LVGL

LVGL 是最受欢迎的免费开源嵌入式图形库,支持任何 MCU、MPU 和显示类型,助您构建精美的用户界面。

我们还提供 UI 设计、实现和咨询等服务。

© 2026 LVGL。保留所有权利。
YouTubeGitHubLinkedIn