代码生成把画布中的设计转换成可在目标设备上运行的 C 源代码。本指南介绍代码生成的功能、配置选项与集成方式。
概述
在编辑器中完成界面设计后,anyui-LIVE 会生成界面实现,并把转换后的资源写入 generated/ 输出目录。生成的代码自成一体,可以直接集成到项目中使用。
本文只介绍生成流程本身,涉及的资源定义见图片指南与字体库指南。
生成的输出
代码生成会输出以下内容:
| 输出 | 描述 |
|---|---|
| 界面源文件 | 实现每个界面以及 setup_ui() 入口的 C 文件,位于 generated/。 |
| 资源源码 | 转换后的图片与字体,位于 generated/。 |
| 头文件 | 界面、组件以及生成变量的声明。 |
| 自定义事件文件 | custom/custom_event.h 与 custom/custom_event.c,用于编写你自己的事件声明与处理逻辑。 |
| 项目文件 | 位于导出根目录,例如 Makefile、lv_conf.h,以及在对应版本中设置窗口尺寸的 main.c。 |
大部分输出都由工具自动生成。通常不应手动修改 generated/ 下的文件,而应回到编辑器修改设计后重新生成。例外是 custom/custom_event.h 与 custom/custom_event.c,它们用于编写自定义事件代码;在桌面应用中,后续重新导出会保留你在这两个文件中的修改。至于 lv_conf.h、main.c 这类导出根目录下的项目文件,则继续用于保存项目接入和设备配置。
导出时,anyui-LIVE 会先重新生成源码,因此输出始终对应当前设计。在桌面应用中,这也会同步清理项目文件夹中过期的生成文件,避免已删除的界面、字体与图片继续参与编译。
导出
桌面应用还可以编译导出的代码并运行模拟器,参见模拟器。
配置选项
代码生成的行为由项目配置控制:
| 选项 | 描述 |
|---|---|
| 分辨率 | 生成界面布局时使用的目标分辨率。 |
| 色深 | 随项目保存,用于运行时配置(8 位、16 位或 32 位);图片解码支持尚在计划中。 |
| LVGL 版本 | 生成代码时使用的 LVGL 版本。 |
| 导出文件夹 | 仅桌面应用:各版本写入生成源码的位置。 |
上述选项的配置位置见项目设置。
集成方式
生成代码通过以下入口与系统集成:
setup_ui()- 在你的应用中调用它,初始化界面。generated/- 将这些文件复制到你的项目构建中。
将生成代码迁移到目标设备就是围绕这些入口展开的,具体步骤见移植指南。