# awtk-mvvm-zig-example **Repository Path**: ufbycd/awtk-mvvm-zig-example ## Basic Information - **Project Name**: awtk-mvvm-zig-example - **Description**: AWTK MVVM Zig 语言版本示例 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-04 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # awtk-mvvm-zig-example AWTK MVVM框架的Zig语言版本使用示例,即用Zig代码实现MVVM的Model。 其优点之一,可以利用Zig支持的泛型/反射特性,直接将Model构建出View-Model,而无需使用三方工具来生成View-Model代码。 目前这个第三方工具要求Model的头文件添加特定格式的注释,十分麻烦、不灵活且容易出错。 ## 限制 * Zig版本为:0.15 * 平台:x86_64-linux-gnu、riscv64-linux-gnu * Zig 0.14版本在交叉编译时生成的elf文件的动态库链接信息不正确,需要使用`scripts/fix-elf.sh`脚本进行修复,详情参见`交叉编译`章节 ## 准备 1. 获取 awtk 并编译 ``` git clone -b allocator https://gitee.com/zlgopen/awtk.git #或 https://github.com/zlgopen/awtk.git cd awtk; scons; cd - ``` 2. 获取 awtk-mvvm 并编译 ``` git clone https://gitee.com/zlgopen/awtk-mvvm.git #或 https://github.com/zlgopen/awtk-mvvm.git cd awtk-mvvm; scons; cd - ``` ## 运行 1. 生成UI资源 ``` zig build res ``` 2. 编译并运行 ``` zig build run ``` 3. 运行效果 ![效果图](screenshot/win_main.png) ## UI声明与View-Model的对应 View-Model为Zig struct,位于src/viewmodels文件夹内;MVVM property对应于struct的field(成员变量)、MVVM command对应于struct的pub method(成员函数)。 以UsersVM示例,XML声明大致为: ```XML