UI设计工具文档UI设计工具文档
反馈
  • AC791
  • AC792
  • AC63
  • GPMCU
  • AD14/15/17/18/AD104
  • AD16
  • AD24
  • AC82
  • AW30
  • AW31
反馈
  • AC791
  • AC792
  • AC63
  • GPMCU
  • AD14/15/17/18/AD104
  • AD16
  • AD24
  • AC82
  • AW30
  • AW31
  • 1.工具前言

    • 1.1.工具首页
    • 1.2.前言说明
  • 2.快速使用

    • 2.1.快速使用
    • 2.2.快速上手
    • 2.3.板子配置
    • 2.4.视频教程
    • 2.5.硬件资料
  • 3.控件说明

    • 3.1.控件说明
    • 3.2.基础控件

      • 页面
      • 按钮
      • 图片按钮
      • 标签
      • 图片
      • 文本框
      • 开关
      • 数字微调器
      • 复选框
      • 下拉框
      • 进度条
      • Lottie动画
      • 帧动画
      • 图表
      • 滑动条
      • 弧线
      • 仪表盘
    • 3.3.菜单控件

      • 圆弧菜单
      • 齿轮菜单
      • 列表菜单
      • 曲线菜单
      • 网格菜单
      • 万花筒菜单
      • 多边形菜单
    • 3.4.容器控件

      • 通用容器
      • Flex布局
  • 4.高级功能

    • 4.1.时间轴动画
    • 4.2.模型绑定
    • 4.3.资源管理
    • 4.4.国际化
    • 4.5.硬件仿真
    • 4.6.自动化测试
    • 4.7.控件组
    • 4.8.菜单管理
    • 4.9.页面管理
    • 4.10.动态页面
  • 5.插件系统

    • 5.1.插件说明
    • 5.2.开发指南
    • 5.3.字体合并
    • 5.4.图片编辑
    • 5.5.截图
    • 5.6.项目合并
    • 5.7.项目属性编辑
    • 5.8.视频转图片
  • 6.使用案例

    • 6.1.倒计时案例
  • 7.常见问题

    • 7.1.问题说明
    • 7.2.编译问题
    • 7.3.LVGL问题
    • 7.4.仿真问题
    • 7.5.UI工具问题
    • 7.6.其他问题
  • 8.工具杂项

    • 8.1.杂项1
    • 8.2.杂项2
    • 8.3.工具生成API接口
    • 8.4.自定义Symbol

工具生成API接口文档

本文档详细描述了由UI设计工具自动生成的C语言API接口,包括资源管理、页面管理、事件处理等核心功能模块。

本章目录
  • 1. 资源管理接口 (gui_res)
    • 1.1. 概述
    • 1.2. 主要接口
  • 2. 页面相关接口 (gui_guider)
    • 2.1. 概述
    • 2.2. 主要接口
  • 3. 页面初始化接口 (gui_scr)
    • 3.1. 概述
    • 3.2. 主要接口
  • 4. 事件处理接口 (gui_events)
    • 4.1. 概述
    • 4.2. 主要接口
  • 5. 字体资源接口 (gui_fonts)
    • 5.1. 概述
    • 5.2. 主要接口
  • 6. 图片资源接口 (gui_images)
    • 6.1. 概述
    • 6.2. 主要接口
  • 7. 控件组接口 (gui_group)
    • 7.1. 概述
    • 7.2. 主要接口
  • 8. 国际化接口 (i18n)
    • 8.1. 概述
    • 8.2. 主要接口
  • 9. 模型绑定接口 (gui_msg)
    • 9.1. 概述
    • 9.2. 主要接口
  • 10. 时间轴动画接口 (gui_timelines)
    • 10.1. 概述
    • 10.2. 主要接口
本章正文

资源管理接口 (gui_res)

概述

提供对应用程序资源的访问,包括资源路径获取和事件回调函数管理。

主要接口

gui_get_res_path

/**
 * 获取指定ID资源的路径
 * @param id 资源ID
 * @return 资源路径字符串指针
 */
char * gui_get_res_path(int32_t id)

gui_get_event_cb

/**
 * 获取指定ID事件的回调函数
 * @param id 事件ID
 * @return 事件回调函数指针
 */
lv_event_cb_t gui_get_event_cb(int32_t id)

res_event_$eventName$

在 工程 - 事件 中,添加的事件,所生成对应的事件回调,弱函数,可在 custom 中实现强函数。

/**
 * 事件回调弱函数
 * @param e LVGL事件对象指针
 */
void res_event_$eventName$(lv_event_t *e);

页面相关接口 (gui_guider)

概述

管理应用程序中的页面加载、切换和生命周期。

主要接口

ui_load_scr_anim

/**
 * 加载页面并应用指定动画效果
 * @param ui UI上下文指针
 * @param screen 目标页面指针
 * @param anim_type 动画类型
 * @param time 动画持续时间
 * @param delay 动画延迟时间
 * @param is_clean 是否清理旧页面(lv_obj_clear(scr))
 * @param auto_del 是否自动删除
 * @param is_push_satck 是否推入页面栈
 */
void ui_load_scr_anim(lv_ui *ui, gui_scr_t *screen, lv_scr_load_anim_t anim_type, uint32_t time,
                      uint32_t delay, bool is_clean, bool auto_del, bool is_push_satck)

ui_scr_stack_pop_anim

/**
 * 从页面栈中弹出页面并加载,可应用动画效果
 * @param ui UI上下文指针
 * @param anim_type 动画类型
 * @param time 动画持续时间
 * @param delay 动画延迟时间
 * @param is_clean 是否清理旧页面(lv_obj_clear(scr))
 * @param auto_del 是否自动删除
 * @param is_push_satck 是否推入页面栈
 */
void ui_scr_stack_pop_anim(lv_ui *ui, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay,
                           bool is_clean, bool auto_del, bool is_push_satck)

ui_get_scr

/**
 * 获取指定ID的页面
 * @param scr_id 页面ID
 * @return 页面结构体指针
 */
gui_scr_t * ui_get_scr(int32_t scr_id)

ui_get_setup_scr

/**
 * 获取已初始化的指定ID页面
 * @param scr_id 页面ID
 * @return 已初始化页面结构体指针
 */
gui_scr_t * ui_get_setup_scr(int32_t scr_id)

ui_is_act_scr

/**
 * 判断指定页面是否为当前活动页面
 * @param scr_id 页面ID
 * @return 如果是活动页面返回true,否则返回false
 */
bool ui_is_act_scr(int32_t scr_id)

setup_ui

/**
 * 初始化整个UI系统
 * @param ui UI上下文指针
 */
void setup_ui(lv_ui *ui)

setup_scr_$pageName$

/**
 * 页面初始化函数声明
 * @param ui UI上下文指针
 * @return 页面对象指针
 */
lv_obj_t * setup_scr_$pageName$(lv_ui *ui)

unload_scr_$pageName$

/**
 * 页面卸载函数声明
 * @param ui UI上下文指针
 */
void unload_scr_$pageName$(lv_ui *ui)

页面初始化接口 (gui_scr)

概述

包含页面创建和销毁的具体实现,控件样式初始化,页面管理初始化。

主要接口

setup_scr_$pageName$

/**
 * 页面初始化实现,在对应的setup_scr_$pageName$.c文件中定义
 * @param ui UI上下文指针
 * @return 页面对象指针
 */
lv_obj_t * setup_scr_$pageName$(lv_ui *ui)

unload_scr_$pageName$

/**
 * 页面卸载实现,在对应的setup_scr_$pageName$.c文件中定义
 * @param ui UI上下文指针
 */
void unload_scr_$pageName$(lv_ui *ui)

ui_style_init

/**
 * 初始化控件默认样式变量(ui_style.h)
 */
void ui_style_init(void)

ui_style_set

/**
 * 给控件设置默认样式(ui_style.h)
 * @param obj 控件对象指针
 * @param type 控件类型
 */
void ui_style_set(lv_obj_t * obj, gui_ctrl_type_t type)

ui_scr_manager_init

/**
 * 初始化页面管理(ui_scr_manager.h)
 */
void ui_scr_manager_init(void)

事件处理接口 (gui_events)

概述

用于初始化和管理用户界面事件,包括事件初始化,事件回调函数管理,多国语言刷新,页面加载/卸载回调函数管理。

主要接口

events_init

/**
 * 初始化全局事件(events_init.h)
 * @param ui UI上下文指针
 */
void events_init(lv_ui *ui)

events_init_$pageName$

/**
 * 初始化指定页面的事件(events_init.h)
 * @param ui UI上下文指针
 */
void events_init_$pageName$(lv_ui *ui)

i18n_refresh_texts

/**
 * 刷新指定页面的多国语言文本(i18n_handler.h)
 * @param scr_id 页面ID
 */
void i18n_refresh_texts(int32_t scr_id)

i18n_refresh_all_texts

/**
 * 刷新所有已初始化页面的多国语言文本(i18n_handler.h)
 */
void i18n_refresh_all_texts()

gui_scr_action_cb

该函数为弱函数,可由用户自己实现强函数。

/**
 * 页面加载/卸载回调函数(screen_handler.h)
 * @param id 页面ID
 * @param action 页面操作类型
 */
GUI_WEAKREF void gui_scr_action_cb(gui_screen_id_t id, gui_screen_action_t action)

字体资源接口 (gui_fonts)

概述

用于初始化程序中使用的字体资源。

主要接口

init_gui_fonts

/**
 * 初始化应用程序中使用的所有字体
 */
void init_gui_fonts()

图片资源接口 (gui_images)

概述

用于声明和管理应用程序中的图片资源,包括普通图片和Lottie动画。

主要接口

LV_IMG_DECLARE

/**
 * 声明图片资源,每个图片C文件都有对应的_$image_name$_(alpha).c文件
 */
LV_IMG_DECLARE(_Menu_14Sleep_alpha111x88)

LV_LOT_DECLARE

/**
 * 声明Lottie动画资源,每个Lottie C文件都有对应的$lottie_name$.c文件
 */
#define LV_LOT_DECLARE(array_name) const uint8_t array_name[];
LV_LOT_DECLARE(lottie_daku)

控件组接口 (gui_group)

概述

用于创建和管理控件组,便于对一组控件进行统一操作。

主要接口

gui_group_init

/**
 * 初始化控件组
 */
void gui_group_init()

gui_group_set_default

/**
 * 设置默认控件组
 * @param group 控件组指针
 */
void gui_group_set_default(lv_group_t *group)

gui_group_add_obj

/**
 * 添加或移除控件到控件组
 * @param group 控件组指针
 * @param obj 控件对象指针
 * @param is_add true表示添加,false表示移除
 */
void gui_group_add_obj(lv_group_t *group, lv_obj_t *obj, bool is_add)

国际化接口 (i18n)

概述

用于处理应用程序的多语言支持。

主要接口

lv_i18n_get_text

/**
 * 获取指定原始文本的翻译文本
 * @param msg_id 原始文本
 * @return 翻译后的文本字符串
 */
const char * lv_i18n_get_text(const char * msg_id)

lv_i18n_get_text_plural

/**
 * 获取指定原始文本的复数形式翻译文本
 * @param msg_id 原始文本
 * @param num 数量
 * @return 根据数量确定的翻译文本
 */
const char * lv_i18n_get_text_plural(const char * msg_id, int num)

lv_i18n_get_current_locale

/**
 * 获取当前语言设置
 * @return 当前语言代码字符串
 */
const char * lv_i18n_get_current_locale(void)

_ 和 _p 和 _font

/**
 * 获取翻译文本和字体的宏定义
 */
#define _(text) lv_i18n_get_text(text)
#define _p(text, num) lv_i18n_get_text_plural(text, num)
#define _font(text) lv_i18n_get_font(text)

模型绑定接口 (gui_msg)

概述

用于处理数据模型与界面控件之间的绑定,实现数据驱动的界面更新。

主要接口

gui_msg_init

/**
 * 初始化模型绑定系统
 */
void gui_msg_init()

gui_msg_init_ui

/**
 * 初始化UI绑定
 */
void gui_msg_init_ui()

gui_msg_init_events

/**
 * 初始化事件绑定
 */
void gui_msg_init_events()

gui_msg_unsubscribe

/**
 * 取消订阅所有模型绑定
 */
void gui_msg_unsubscribe()

gui_msg_send

/**
 * 发送模型消息
 * @param msg_id 消息ID
 * @param value 消息值指针
 * @param len 消息值长度(只有消息类型为数组时传入才有意义)
 * @return 消息发送状态
 */
gui_msg_status_t gui_msg_send(int32_t msg_id, void * value, int32_t len)

gui_msg_get_send_status

/**
 * 获取当前模型发送状态
 * @return 消息发送状态
 */
gui_msg_send_status_t gui_msg_get_send_status()

gui_msg_get

该函数为弱函数,可由用户自己实现强函数。

/**
 * 获取指定ID的模型数据
 * @param msg_id 消息ID
 * @return 模型数据指针
 */
gui_msg_data_t * gui_msg_get(int32_t msg_id)
// 工具生成的默认实现
gui_msg_data_t * gui_msg_get_guider(int32_t msg_id);

gui_msg_action_change

该函数为弱函数,可由用户自己实现强函数。

/**
 * 修改模型动作
 * @param msg_id 消息ID
 * @param access 访问动作类型
 * @param data 数据指针
 * @param type 数据类型
 */
void gui_msg_action_change(int32_t msg_id, gui_msg_action_t access, gui_msg_data_t * data, gui_msg_data_type_t type)
// 工具生成的默认实现
void gui_msg_action_change_guider(int32_t msg_id, gui_msg_action_t access, gui_msg_data_t * data, gui_msg_data_type_t type);

gui_msg_subscribe_change

该函数为弱函数,可由用户自己实现强函数。

/**
 * 修改模型订阅状态
 * @param msg_id 消息ID
 * @param sub_type 订阅类型
 */
void gui_msg_subscribe_change(int32_t msg_id, gui_msg_subscribe_t sub_type)
// 工具生成的默认实现
void gui_msg_subscribe_change_guider(int32_t msg_id, gui_msg_subscribe_t sub_type);

gui_msg_get_subject

/**
 * 获取订阅对象中的subject
 * @param msg_id 消息ID
 * @return subject对象指针
 */
lv_subject_t * gui_msg_get_subject(int32_t msg_id)

gui_msg_get_sub

/**
 * 获取订阅对象
 * @param msg_id 消息ID
 * @return 订阅对象指针
 */
gui_msg_sub_t * gui_msg_get_sub(int32_t msg_id)

gui_msg_create_sub

/**
 * 创建订阅对象
 * @param msg_id 消息ID
 * @return 订阅对象指针
 */
gui_msg_sub_t * gui_msg_create_sub(int32_t msg_id)

gui_msg_get_data

/**
 * 获取模型数据
 * @return 模型数据指针
 */
gui_msg_data_t * gui_msg_get_data()

gui_msg_get_data_type

/**
 * 获取指定模型的数据类型
 * @param msg_id 消息ID
 * @return 数据类型
 */
gui_msg_data_type_t gui_msg_get_data_type(int32_t msg_id)

gui_msg_get_data_array_type

/**
 * 获取指定模型数据的数组类型
 * @param msg_id 消息ID
 * @return 数组类型
 */
gui_msg_array_type_t gui_msg_get_data_array_type(int32_t msg_id)

gui_msg_get_name

/**
 * 获取模型名称
 * @param msg_id 消息ID
 * @return 模型名称字符串
 */
char * gui_msg_get_name(int32_t msg_id)

gui_msg_has_observer

/**
 * 判断是否订阅
 * @param subject subject对象指针
 * @param cb 观察者回调函数指针
 * @param obj 控件对象指针
 * @param user_data 用户数据指针
 * @return 如果有观察者返回true,否则返回false
 */
bool gui_msg_has_observer(lv_subject_t * subject, lv_observer_cb_t cb, lv_obj_t * obj, void * user_data)

gui_msg_setup_component

/**
 * 设置控件的消息订阅
 * @param subscribe_enabled 是否启用订阅
 * @param event_enabled 是否启用事件
 * @param subject subject对象指针
 * @param target_obj 目标控件对象指针
 * @param msg_data 消息数据指针
 * @param observer_cb 观察者回调函数指针
 * @param msg_id 消息ID
 * @param msg_action 消息动作类型
 * @param data_type 数据类型
 * @param event_cb 事件回调函数指针
 */
void gui_msg_setup_component(bool subscribe_enabled, bool event_enabled, lv_subject_t *subject, lv_obj_t *target_obj, gui_msg_data_t *msg_data, lv_observer_cb_t observer_cb, int32_t msg_id, gui_msg_action_t msg_action, gui_msg_data_type_t data_type, lv_event_cb_t event_cb)

gui_$msgName$_msg.h

每个消息模型的接口

// gui_$msgName$_msg.h

//初始化模型绑定
void gui_$msgName$_msg_init(lv_ui *ui);

//初始化UI
void gui_$msgName$_msg_init_ui();

//初始化控件事件,订阅模型消息
void gui_$msgName$_msg_init_events();

//取消订阅所有模型绑定
void gui_$msgName$_msg_unsubscribe();

//发送模型消息
gui_msg_status_t gui_$msgName$_msg_send(int32_t msg_id, void * value, int32_t len);

时间轴动画接口 (gui_timelines)

概述

用于创建和管理复杂的时间轴动画,执行多个动画。

主要接口

gui_timelines_init

/**
 * 初始化时间轴动画
 * @param ui UI上下文指针
 */
void gui_timelines_init(lv_ui *ui)

gui_timelines_stop

/**
 * 停止所有时间轴动画
 */
void gui_timelines_stop()

gui_timelines_delete

/**
 * 删除所有时间轴动画
 */
void gui_timelines_delete()

gui_anim_set_var

/**
 * 设置动画变量
 * @param anim 动画对象指针
 * @param obj 控件对象指针
 * @param exec_cb 执行回调函数指针
 * @param data 动画数据
 */
void gui_anim_set_var(lv_anim_t *anim, lv_obj_t *obj, lv_anim_exec_xcb_t exec_cb, gui_anim_data_t data)

gui_timeline_start

/**
 * 启动指定的时间轴动画
 * @param timeline 时间轴对象指针
 */
void gui_timeline_start(gui_timeline_t *timeline)

gui_timeline_stop

/**
 * 停止指定的时间轴动画
 * @param timeline 时间轴对象指针
 */
void gui_timeline_stop(gui_timeline_t *timeline)

gui_timeline_delete

/**
 * 删除指定的时间轴动画
 * @param timeline 时间轴对象指针
 */
void gui_timeline_delete(gui_timeline_t *timeline)

gui_timeline_set_period

/**
 * 设置时间轴动画的周期
 * @param timeline 时间轴对象指针
 * @param period 周期时间(毫秒)
 */
void gui_timeline_set_period(gui_timeline_t *timeline, uint32_t period)

gui_timeline_set_repeat_count

/**
 * 设置时间轴动画的重复次数
 * @param timeline 时间轴对象指针
 * @param count 重复次数(-1表示无限循环)
 */
void gui_timeline_set_repeat_count(gui_timeline_t *timeline, int32_t count)

gui_anim_set__$prop/style$

/**
 * 设置控件属性/样式的动画回调函数
 * @param var 动画变量指针
 * @param v 当前动画值
 */
void gui_anim_set_$prop/style$(void * var, int32_t v);

gui_$timelineName$_timeline.h

每个时间轴动画的接口

// gui_$timelineName$_timeline.h

//初始化时间轴动画
extern int32_t gui_$timelineName$_timeline_init(lv_ui *ui)
上一页
8.2.杂项2
下一页
8.4.自定义Symbol