# 工具脚本
## 一、update\_res.py 资源生成工具
```
Usage: ./scripts/update_res.py action[clean|all|font|image|ui|style|string]
Example:
./scripts/update_res.py all
./scripts/update_res.py clean
./scripts/update_res.py style
```
参数action是必须的,其取值如下:
* clean 清除之前生成的资源文件。
* all 重新生成全部资源。
* font 仅生成有变化的字体资源。
* image 仅生成有变化的图像资源。
* ui 仅生成有变化的UI资源。
* style 仅生成有变化的主题资源。
* string 仅生成有变化的字符串资源。
### 1.1 设置
如果需要修改资源生成工具的设置,修改 project.json 即可,设置参数的详细信息如下:
```json
{
......
"assets": {
"activedTheme": "default", // APP运行时的默认主题
"outputDir": "res", // 资源生成的输出目录
"loadFrom": "any",
"const": "resource_data", // 资源的常量格式,有2个选项:
// “resource_data”表示原始数据,“bitmap_data”表示位图数据
"screenDPR": "x1", // LCD的设备像素比(DPR),有3个选项:x1,x2,x3
"defaultLanguage": "zh",
"defaultCountry": "CN",
"themes": { // 项目的所有主题
"default": { // default主题
"activedSystemBar": "system_bar",
"activedBottomSystemBar": "system_bar_b",
"packaged": true, // 是否生成资源
"fonts": { // 主题包含的字体
"default": { // default字体
"text": " !\"#$%&'()*+,-./0123456789:", // “text”为TTF字体的保留字符,
"18": " !\"#$%&'()*+,-./0123456789确定取消" // “18”为Bitmap字体18字号的保留字符
}
},
"lcd": {
"width": "800",
"height": "480",
"colorDepth": "16bit", // LCD的颜色深度
"colorFormat": "BGR(A)" // LCD的颜色尺寸
}
}
}
},
......
}
```
> 关于 project.json 的更多说明,请参考 [AWTK项目描述文件](https://github.com/zlgopen/awtk/blob/master/docs/awtk_project_description_file.md)
> 也可以通过打开 Designer,进入 “项目设置” 页面进行设置。
### 1.2 添加资源生成事件回调,实现额外处理逻辑
update_res.py 在生成资源的前后会分别触发一个before事件和一个after事件。如果需要在资源生成前后做一些额外的处理,则在相应的事件回调中添加代码即可。
具体步骤如下:
- 在 update_res.py 所在目录新建一个Python文件,并命名为 update_res_generate_res_handler.py。默认文件内容如下:
```python
#!/usr/bin/python
# ctx参数是一个dict类型,有如下属性:
# ctx['type']: 当前正在生成的资源类型,有all、string、font、script、image、ui、style、data、xml
# ctx['theme']: 当前正在生成的主题
# ctx['imagegen_options']: 当前的图片生成选项,有mono、bgr565、bgra、rgb565、rgba
# ctx['input']: 当前主题原始资源的存放路径,比如'e:/AWTK Application/design/default'
# ctx['output']: 当前主题生成资源的存放路径,比如'e:/AWTK Application/res/assets/default'
#
# 资源生成事件的流程如下:
# |----->----- 开始生成某个主题的资源
# | |
# | on_generate_res_before('all')
# | |
# | on_generate_res_before('string')
# | |
# | on_generate_res_after('string')
# | |
# ^ on_generate_res_before('font')
# | |
# | on_generate_res_after('font')
# | ......
# | on_generate_res_before('xml')
# | |
# | on_generate_res_after('xml')
# | |
# | on_generate_res_after('all')
# | |
# |-----<----- 继续生成下一个主题
#
def on_generate_res_before(ctx):
print('======================= '+ ctx['type'] + ' =======================')
def on_generate_res_after(ctx):
print('======================= '+ ctx['type'] + ' =======================')
```
- 在 on_generate_res_before 或 on_generate_res_after 添加处理逻辑。
### 1.3 注意事项
##### 1.3.1 awtk 的路径
update_res.py 须依赖 awtk 提供的公共模块,默认使用 AWTK Designer 安装目录中的 awtk,如果找不到则会尝试在当前工作目录的上3级目录中查找。
如果查找不到 awtk,则会出现如下错误:
```cmd
ImportError: No module named update_res_app
```
此时只需修改 update_res.py 中的 AWTK_ROOT 为正确的 awtk 路径即可。
##### 1.3.2 用于单色屏的位图字体生成工具 fontgen_ft
默认情况下,awtk 编译后生成的 fontgen 工具只能生成用于非单色屏的位图字体。因此,如果需要生成用于单色屏的位图字体,重新生成一个专门的 fontgen。
步骤如下:
- 拷贝awtk 目录,并重命名为 awtk-mono。
- 修改 awtk-mono/awtk_config.py 文件,将:
```python
......
#LCD='SDL_FB_MONO'
......
```
改为
```python
......
LCD='SDL_FB_MONO'
......
```
- 在 awtk-mono 目录下,执行 scons 命令,重新编译 awtk。
- 将 awtk-mono/bin目录下fontgen工具重命名为 fontgen_ft,并拷贝到 awtk/bin目录下。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
周立功UI 开源软件awtk的C语言应用demo,基于MVC架构,根据个人习惯进行了调整,方便移植到其他应用中,生成应用的功能模块。 demo本身已基于PC平台进行编译,生成了可执行文件,可直接查看UI效果。
资源推荐
资源详情
资源评论
收起资源包目录
UI 开源软件awtk的C语言应用demo (484个子文件)
default.bin 30KB
default.bin 30KB
login.bin 1KB
login.bin 1KB
login_controller.c 5KB
login_view.c 4KB
login_model.c 2KB
login_app.c 741B
app_main.c 482B
window_main.c 302B
default.data 151KB
login.data 6KB
.sconsign.dblite 287KB
demo.exe 5.78MB
demo.exp 67KB
login_model.h 2KB
login_view.h 2KB
login_controller.h 1KB
login_app.h 526B
demo.ilk 6.38MB
assets_default.inc 7KB
__assets_default.inc 6KB
assets.inc 2KB
project.json 998B
uses_sdk.json 147B
demo.lib 110KB
README.md 5KB
login_controller.obj 97KB
login_view.obj 95KB
login_view.obj 95KB
app_main.obj 95KB
window_main.obj 86KB
login_app.obj 86KB
login_model.obj 53KB
demo.pdb 16.15MB
guage_bg.png 60KB
guage_bg.png 60KB
guage_bg.png 36KB
guage_bg.png 36KB
clock_bg.png 18KB
clock_bg.png 18KB
guage_bg.png 15KB
guage_bg.png 15KB
clock_bg.png 11KB
clock_bg.png 11KB
clock_bg.png 5KB
clock_bg.png 5KB
radio_checked_p.png 2KB
radio_checked_p.png 2KB
radio_checked_n.png 2KB
radio_checked_n.png 2KB
radio_checked_d.png 2KB
radio_checked_d.png 2KB
radio_checked_f.png 2KB
radio_checked_f.png 2KB
radio_checked_o.png 2KB
radio_checked_o.png 2KB
clock_minute.png 1KB
clock_minute.png 1KB
radio_p.png 1KB
radio_p.png 1KB
radio_n.png 1KB
radio_n.png 1KB
rounded_p.png 1KB
rounded_p.png 1KB
rounded_n.png 1KB
rounded_n.png 1KB
check_checked_d.png 1KB
check_checked_d.png 1KB
guage_pointer.png 1KB
guage_pointer.png 1KB
radio_f.png 1KB
radio_o.png 1KB
radio_o.png 1KB
radio_f.png 1KB
radio_d.png 1KB
radio_d.png 1KB
clock_hour.png 1KB
clock_hour.png 1KB
radio_checked_p.png 1KB
radio_checked_p.png 1KB
rounded_o.png 1KB
rounded_o.png 1KB
radio_checked_n.png 1KB
radio_checked_n.png 1KB
radio_checked_f.png 1KB
radio_checked_f.png 1KB
radio_checked_o.png 1KB
radio_checked_o.png 1KB
num8.png 1KB
num8.png 1KB
radio_checked_d.png 1KB
radio_checked_d.png 1KB
check_checked_f.png 1KB
check_checked_f.png 1KB
check_checked_p.png 1KB
check_checked_p.png 1KB
check_checked_o.png 1KB
check_checked_o.png 1KB
check_checked_n.png 1KB
共 484 条
- 1
- 2
- 3
- 4
- 5
资源评论
- Neil-wen2023-07-17资源太好了,解决了我当下遇到的难题,抱紧大佬的大腿~
- best_micro2023-02-09这个资源值得下载,资源内容详细全面,与描述一致,受益匪浅。
qgq8312
- 粉丝: 15
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功