WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-04-25 11:37:15

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

ZLG开源 GUI 引擎 AWTK 1.1 发布

一、介绍

AWTK全称Toolkit AnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统、WEB、各种小程序、手机和PC打造的通用GUI引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎。

AWTK寓意有两个方面:

  • Toolkit AnyWhere。

  • ZLG物联网操作系统AWorks内置GUI。

AWTK源码仓库:

运行效果截图:

cleanair_main.png

meter_main.png

chart_main.png

musicplayer_main.png

二、最终目标:
  • 支持开发嵌入式应用程序。

  • 支持开发Linux应用程序。

  • 支持开发MacOS应用程序。

  • 支持开发Windows应用程序。

  • 支持开发Web APP。

  • 支持开发微信小程序。

  • 支持开发支付宝小程序。

  • 支持开发百度小程序。

  • 支持开发Android应用程序。

  • 支持开发iOS应用程序。

  • 支持开发2D小游戏。

三、主要特色

1.跨平台

AWTK是跨平台的,这有两个方面的意思:

  • AWTK本身是跨平台的。目前支持的平台有ZLG AWorks、Windows、Linux、MacOS、嵌入式Linux和嵌入式裸系统,可以轻松的移植到各种RTOS上。AWTK以后也可以运行在浏览器(即将公测)、各种小程序、Android和iOS等平台上运行。

  • AWTK同时还提供了一套跨平台的基础工具库。其中包括链表、数组、字符串(UTF8和widechar),事件发射器、值、对象、文件系统、互斥锁和线程、表达式和字符串解析等等,让你用AWTK开发的应用程序可以真正跨平台运行。

2.高效

AWTK通过一系列的手段保证AWTK应用程序高效运行:

  • 通过脏矩算法只更新变化的部分。

  • 支持3 FrameBuffer让界面以最高帧率运行(可选)。

  • UI描述文件和主题文件使用高效的二进制格式,解析在瞬间完成。

  • 支持各种GPU加速接口。如OpenGL、DirectX、Vulman和Metal等。

  • 支持嵌入式平台的各种2D加速接口。目前STM32的DMA2D和NXP的PXP接口,厂家可以轻松扩展自己的加速接口。

3.稳定

AWTK通过下列方式极力让代码稳定可靠:

  • 使用cppcheck和facebook infer进行静态检查。

  • 使用valgrind进行动态内存检查。

  • 近两万行的单元测试代码。

  • ZLG强大GUI团队的支持。

  • 经过多个实际项目验证。

  • 多平台/多编译器验证。

  • 优秀的架构设计。

  • Code Review。

  • 手工测试。

4.强大

  • 丰富的控件(持续增加中)。

  • 支持各种图片格式(png/jpg/gif/svg)。

  • 支持各种字体格式(点阵和矢量)。

  • 支持窗口动画

  • 支持控件动画

  • 支持高清屏。

  • 支持界面描述文件。

  • 支持主题描述文件。

  • 支持控件布局策略。

  • 支持对话框高亮策略。

  • 丰富的辅助工具。

  • 支持从低端的Cortex M3到各种高端CPU。

  • 支持无文件系统和自定义的文件系统。

  • 支持裸系统和RTOS。

5.易用

  • 大量的示例代码。

  • 完善的API文档和使用文档。

  • ZLG 强大的技术支持团队。

  • 用AWTK本身开发的界面编辑器(开发中)。

  • 声明式的界面描述语言。一行代码启用控件动画,启用窗口动画,显示图片(png/jpg/svg/gif)。

6.高度扩展性

  • 可以扩展自己的控件。

  • 可以扩展自己的动画。

  • 可以实现自己的主循环。

  • 可以扩展自己的软键盘。

  • 可以扩展自己的图片加载器。

  • 可以扩展自己的字体加载器。

  • 可以扩展自己的输入法引擎。

  • 可以扩展自己的控件布局算法。

  • 可以扩展自己的对话框高亮策略。

  • 可以实现自己的LCD接口。

  • 可以扩展自己的矢量引擎(如使用skia/cairo)。

  • 所有扩展组件和内置组件具有相同的待遇。

7.多种开发语言

AWTK本身是用C语言开发的,可以通过IDL生成各种脚本语言的绑定。生成的绑定代码不是简单的把C语言的API映射到脚本语言,而是生成脚本语言原生代码风格的API。目前支持以下语言(以后根据需要增加):

  • C

  • Lua

  • Javascript on jerryscript

  • Javascript on nodejs

8.国际化

  • 支持Unicode。

  • 支持输入法。

  • 支持字符串翻译(实时生效)。

  • 支持图片翻译(实时生效)。

  • 文字双向排版(计划中)。

9.开放源码,免费商用(LGPL)。

## 四、1.1 版本更新

1.稳定性增强

  • 多个实际项目验证。

  • 新增数百个测试用例。

  • 增加控件运行时类型检查。

  • 使用infer静态检查,并修改发现的问题。

  • 使用cppcheck静态检查,并修改发现的问题。

  • 使用valgrind动态内存检查,并修改发现的问题。

2.优化性能

  • 绘制半透明色矩形速度提高3倍。

  • 缩放不透明图片快1倍(bgr565格式LCD)。

  • 缩放半透明图片快30%(bgr565格式LCD)。

3.新增特性

  • 窗口动画支持自定义。

  • 新增4种内置窗口动画。

  • 对话框高亮策略支持自定义。

  • 内置动态和静态背景变暗的对话框高亮策略。

  • 新增 object_t接口。

  • 对话框支持非模态。

  • 窗口支持全屏窗口。

  • 增加toast/info/confirm等内置对话框。

  • slide view支持循环切换。

  • slide view增加更多切换动画。

  • 数字时钟支持英文的星期和月份。

  • 支持自定义软键盘。

  • 增加lcd_profile用于对绘制函数进行profile。

  • data资源支持同文件名不同扩展名。

  • window manager支持paint事件。

  • UI XML文件支持简单表达式。

  • 改进编译脚本和资源生成脚本。

4.新增控件

  • 增加mutable image,用于实现camera和video时显示图像。

5.新增重要API

  • window_manager_back 返回上一级窗口。

  • window_manager_back_to_home 返回主窗口。

  • window_close_force 强制关闭窗口(忽略动画)。

  • ui_loader_load_widget 用于加载局部组件。

6.Bug修改和完善功能

详情请参考docs/changes.md

## 五、预告

下一个版本计划推出下列功能:

  • 新增控件。

  • 抽象音频接口。

  • 桌面版本支持多原生窗口。

  • 在sylixos和linux上支持多进程。

  • AWTK-WEB 让AWTK应用程序在浏览器中运行。

  • AWTK-MVVM 为嵌入式系统定制的MVVM框架。

需要什么功能,请在github上留言,我们会优先安排。

离线

#2 2019-04-25 11:57:54

cityf
会员
注册时间: 2017-11-03
累计积分: 159

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

关注这个GUI 很久了, 找机会试一试。

请问楼主是开发awtk 开发团队的吗?

离线

#3 2019-04-25 13:05:19

达克罗德
会员
注册时间: 2018-04-10
累计积分: 599

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

真的很不错

离线

#4 2019-04-25 13:09:30

Zodiac
会员
注册时间: 2018-11-28
累计积分: 30

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

这不是FTK的作者嘛?久仰!

离线

#5 2019-04-25 13:36:23

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,230

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

第二张仪表盘真漂亮!

离线

#6 2019-04-25 14:08:14

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

Zodiac 说:

这不是FTK的作者嘛?久仰!

哈哈,遇到熟人了。

离线

#7 2019-04-25 14:10:59

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

cityf 说:

关注这个GUI 很久了, 找机会试一试。

请问楼主是开发awtk 开发团队的吗?

是的。谢谢关注。

离线

#8 2019-04-25 16:21:22

微凉VeiLiang
会员
注册时间: 2018-10-28
累计积分: 165

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

紧紧跟着大佬的步伐

离线

#9 2019-04-25 18:29:47

达克罗德
会员
注册时间: 2018-04-10
累计积分: 599

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

试了一下demo,效果非常的好。

离线

#10 2019-04-25 22:57:32

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

看过视频,效果很好。李工,这个GUI有没有交流群?

离线

#11 2019-04-26 11:33:54

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

duckduckgo 说:

看过视频,效果很好。李工,这个GUI有没有交流群?

谢谢关注。我在README的最下面加了一个微信群的二维码:https://github.com/zlgopen/awtk

离线

#12 2019-05-29 16:58:50

阿黄
会员
注册时间: 2018-10-03
累计积分: 102

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

lixianjing 说:
duckduckgo 说:

看过视频,效果很好。李工,这个GUI有没有交流群?

谢谢关注。我在README的最下面加了一个微信群的二维码:https://github.com/zlgopen/awtk


没找到微信群二维码呢,另外主页上这么漂亮的界面 不知道是否有demo,不知道该如何实现时钟界面。
表盘是个图片吗? 我想实现百分比式的表盘,不知道如何实现

离线

#13 2019-05-29 17:29:29

dbskcnc
会员
注册时间: 2018-10-12
累计积分: 37

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

强大得很,跨平台是很大的优势, 以后有项目可以试试

最近编辑记录 dbskcnc (2019-05-29 17:29:46)

离线

#14 2019-05-30 10:03:08

rf
会员
注册时间: 2019-05-21
累计积分: 7

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

商业使用收费吗?

离线

#15 2019-05-30 14:24:03

达克罗德
会员
注册时间: 2018-04-10
累计积分: 599

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

rf 说:

商业使用收费吗?

看授权是LGPL,但是嵌入式环境都是静态编译居多,那么按理说就不能商业使用了,除非跑Linux然后动态加载

离线

#16 2019-05-30 16:21:43

msr06rr
会员
所在地: 苏州
注册时间: 2018-01-11
累计积分: 148

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

介绍上面写着开放源码,免费商用,也不知道后期会不会改变策略

离线

#17 2019-10-17 09:14:08

jimmy
Moderator
注册时间: 2017-10-29
累计积分: 261

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

我在全志V3s上,直接运行 demoui, 插入USB鼠标就能点击,这个确实很人性化,不需要任何设置。

但是问题来了,按下鼠标不能左右滑动,而电容触摸屏可以,请教楼主, 是我的操作姿势有问题,还是本来就不行呢?

Windows/Ubuntu 模拟器鼠标操作是可以的.

离线

#18 2019-10-17 10:47:05

Iron
会员
注册时间: 2018-10-23
累计积分: 8
个人网站

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

看起来很赞(((o(*゚▽゚*)o)))

离线

#19 2019-10-17 11:38:20

ffplay
会员
注册时间: 2019-08-31
累计积分: 69

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

请教楼主,可以用scons命令转为 msvc 工程吗?

因为我还是不习惯命令行编程

离线

#20 2019-10-17 13:50:54

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

jimmy 说:

我在全志V3s上,直接运行 demoui, 插入USB鼠标就能点击,这个确实很人性化,不需要任何设置。

但是问题来了,按下鼠标不能左右滑动,而电容触摸屏可以,请教楼主, 是我的操作姿势有问题,还是本来就不行呢?

Windows/Ubuntu 模拟器鼠标操作是可以的.

可能是移植层的问题,貌似没收到鼠标移动的事件,把它打印出来看看。

离线

#21 2019-10-17 13:51:50

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

ffplay 说:

请教楼主,可以用scons命令转为 msvc 工程吗?

因为我还是不习惯命令行编程

scons没这个功能。scons + VSCode挺好用的,你可试试。

离线

#22 2019-10-17 13:55:02

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

达克罗德 说:
rf 说:

商业使用收费吗?

看授权是LGPL,但是嵌入式环境都是静态编译居多,那么按理说就不能商业使用了,除非跑Linux然后动态加载

使用LGPL,我的本意是修改了AWTK本身,希望能分享出来。这样大家一起来完善AWTK,做出最好的GUI。

如果你不放心,可以联系我们,我们可以提供免费的商业授权。

离线

#23 2019-10-17 13:55:07

jimmy
Moderator
注册时间: 2017-10-29
累计积分: 261

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

lixianjing 说:
jimmy 说:

我在全志V3s上,直接运行 demoui, 插入USB鼠标就能点击,这个确实很人性化,不需要任何设置。

但是问题来了,按下鼠标不能左右滑动,而电容触摸屏可以,请教楼主, 是我的操作姿势有问题,还是本来就不行呢?

Windows/Ubuntu 模拟器鼠标操作是可以的.

可能是移植层的问题,貌似没收到鼠标移动的事件,把它打印出来看看。

可是鼠标指针会随着手势移动,应该说收到了移动事件才对,晚点我去看下 log 记录。

离线

#24 2019-10-17 13:57:14

ffplay
会员
注册时间: 2019-08-31
累计积分: 69

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

lixianjing 说:
ffplay 说:

请教楼主,可以用scons命令转为 msvc 工程吗?

因为我还是不习惯命令行编程

scons没这个功能。scons + VSCode挺好用的,你可试试。

VSCode是导入一个文件夹编辑对吧?可以单步调试吗?

离线

#25 2019-10-18 10:58:32

k455619
会员
注册时间: 2018-07-29
累计积分: 34

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

scons 后出现下面问题

scons: Reading SConscript files ...
KeyError: 'NATIVE_WINDOW':
  File "/home/gust/F1c200s/ATWK/awtk-linux-fb/SConstruct", line 45:
    SConscript(SConscriptFiles)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
    return method(*args, **kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 260:
    exec _file_ in call_stack[-1].globals
  File "/home/gust/F1c200s/ATWK/awtk-linux-fb/build/var/awtk/src/SConscript", line 8:
    NATIVE_WINDOW = os.environ['NATIVE_WINDOW'];
  File "/usr/lib/python2.7/UserDict.py", line 40:
    raise KeyError(key)

离线

#26 2019-10-18 12:50:11

dgtg
会员
注册时间: 2017-11-08
累计积分: 131

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

准备新项目上使用这个AWTK...

离线

#27 2019-10-19 16:14:14

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,230

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

@k455619

KeyError: 'NATIVE_WINDOW':
NATIVE_WINDOW = os.environ['NATIVE_WINDOW'];

说明字典(???) os.environ 中, 键值(???) NATIVE_WINDOW 不存在,

是不是awtk_config.py 中这行没有执行:

os.environ['NATIVE_WINDOW'] = NATIVE_WINDOW;

离线

#28 2019-10-19 17:46:00

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

我这里没问题啊。你用的最新代码吗?难道是 python2.7的问题?

@k455619

离线

#29 2019-10-19 17:49:40

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

ffplay 说:
lixianjing 说:
ffplay 说:

请教楼主,可以用scons命令转为 msvc 工程吗?

因为我还是不习惯命令行编程

scons没这个功能。scons + VSCode挺好用的,你可试试。

VSCode是导入一个文件夹编辑对吧?可以单步调试吗?

在AWTK目录,右键打开“Open With Code”。

在launch.json加入:

    {
      "name": "(Windows) demoui.exe",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceFolder}/bin/demoui.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false
    },

离线

#30 2019-10-20 18:06:13

k455619
会员
注册时间: 2018-07-29
累计积分: 34

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

lixianjing 说:

我这里没问题啊。你用的最新代码吗?难道是 python2.7的问题?

@k455619

并不是最新的,下周试试最新的看下

离线

#31 2019-10-20 18:10:30

k455619
会员
注册时间: 2018-07-29
累计积分: 34

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

晕哥 说:

@k455619

KeyError: 'NATIVE_WINDOW':
NATIVE_WINDOW = os.environ['NATIVE_WINDOW'];

说明字典(???) os.environ 中, 键值(???) NATIVE_WINDOW 不存在,

是不是awtk_config.py 中这行没有执行:

os.environ['NATIVE_WINDOW'] = NATIVE_WINDOW;

好像就是python找不到这个NATIVE_WINDOW key 报错了,但是其实是有这个key的吧,下周我试试最新的ATWK

离线

#32 2019-10-21 13:53:45

a32425262
会员
注册时间: 2018-05-06
累计积分: 32

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

V3s使用这个
屏幕白一下之后就黑了 啥也不显示 是怎么回事呢

# ./release/bin/demoui
app_root_is_valid:43 app_root != NULL
try /mnt/awtk
try /mnt/awtk/release/bin
app_root=/mnt/awtk/release
!!!Asset [name=en_US type=strings] not exist!!!
!!!Asset [name=en type=strings] not exist!!!
fb_info_t: /dev/fb0
fb_info_t: xres=480 yres=272 bits_per_pixel=32 mem_size=522240
fb_info_t: red(16 8) green(8 8) blue(0 8)
line_length=1920 mem_size=522240 smem_len=522240
xres_virtual =480 yres_virtual=272 xpanstep=0 ywrapstep=0
ratio=1.000000 480 272
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
Build at: Oct 21 2019 12:14:02
assets_manager_preload:626 info != NULL
assets_manager_preload:626 info != NULL
!!!Asset [name=preload type=ui] not exist!!!
ui_loader_load_widget:38 ui != NULL
!!!Asset [name=cursor type=image] not exist!!!
window_manager_default_set_cursor:997 image_manager_get_bitmap(image_manager(), cursor, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=cursor type=image] not exist!!!
window_manager_paint_cursor:531 image_manager_get_bitmap(image_manager(), wm->cursor, &bitmap) == RET_OK
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=0, fd=-1, filename=/dev/input/mice)
Print mouse: : Success
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=earth type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=dialog_title type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=rgb type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=rgba type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=system_bar type=ui] not exist!!!
ui_loader_load_widget:38 ui != NULL
!!!Asset [name=main type=ui] not exist!!!
ui_loader_load_widget:38 ui != NULL
widget_on:936 widget != NULL && on_event != NULL
widget_on:936 widget != NULL && on_event != NULL
widget_foreach:2154 widget != NULL && visit != NULL
widget_get_type:2809 widget != NULL && widget->vt != NULL
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success

离线

#33 2019-10-21 14:17:47

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,230

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

从 log 上面看, 没有相关的日志输出.

我在 S3 上面跑过, 一切正常。

还直接支持USB鼠标。

离线

#34 2019-10-21 17:07:15

a32425262
会员
注册时间: 2018-05-06
累计积分: 32

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

点击触摸屏是有log输出的
就是屏幕一片黑 啥也不显示

晕哥 说:

从 log 上面看, 没有相关的日志输出.

我在 S3 上面跑过, 一切正常。

还直接支持USB鼠标。

离线

#35 2019-10-22 09:03:50

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

a32425262 说:

点击触摸屏是有log输出的
就是屏幕一片黑 啥也不显示

晕哥 说:

从 log 上面看, 没有相关的日志输出.

我在 S3 上面跑过, 一切正常。

还直接支持USB鼠标。

貌似资源文件没找到。是用release.sh生成的zip包吗?

离线

#36 2019-10-22 21:36:09

a32425262
会员
注册时间: 2018-05-06
累计积分: 32

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

是的  我是按照这个步骤来的
==============================================
使用方法

1.获取源码
git clone https://github.com/zlgopen/awtk.git
git clone https://github.com/zlgopen/awtk-examples.git
git clone https://github.com/zlgopen/awtk-linux-fb.git
cd awtk-linux-fb
2.编辑 awtk_config.py 设置工具链的路径
TSLIB_LIB_DIR='/opt/28x/tslib/lib'
TSLIB_INC_DIR='/opt/28x/tslib/include'
TOOLS_PREFIX='/opt/28x/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-linux-'
3.编辑 awtk-port/main_loop_linux.c 修改输入设备的文件名
#define FB_DEVICE_FILENAME "/dev/fb0"
#define TS_DEVICE_FILENAME "/dev/input/event0"
#define KB_DEVICE_FILENAME "/dev/input/event1"
4.编译(请先安装scons)
生成内置 demoui 例子,生成结果在 build/bin 文件夹下的 demoui 文件
scons
5.生成发布包
对于内置的 demoui 例子
./release.sh
6.运行
把 release.tar.gz 上传到开发板,并解压,然后运行:

./release/bin/demoui


lixianjing 说:
a32425262 说:

点击触摸屏是有log输出的
就是屏幕一片黑 啥也不显示

晕哥 说:

从 log 上面看, 没有相关的日志输出.

我在 S3 上面跑过, 一切正常。

还直接支持USB鼠标。

貌似资源文件没找到。是用release.sh生成的zip包吗?

离线

#37 2019-10-23 11:42:05

k455619
会员
注册时间: 2018-07-29
累计积分: 34

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

我现在有个问题
/dev/root                11.5M      5.1M      6.4M  44% /
ATWK有没有小点的DEMO?

离线

#38 2019-10-23 11:58:46

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,230

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

是有点大, arm-linux-strip 处理一下, 删除调试符号,看还能不能变小一点。

离线

#39 2019-10-23 14:45:09

a32425262
会员
注册时间: 2018-05-06
累计积分: 32

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

是哦 这么大的话 感觉和QT差不多了

晕哥 说:

是有点大, arm-linux-strip 处理一下, 删除调试符号,看还能不能变小一点。

离线

#40 2019-10-24 08:36:45

a32425262
会员
注册时间: 2018-05-06
累计积分: 32

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

2019-10-24早8:26
删除全部,重新下载后,无法编译了,函数声明和定义不一样的,此处我的修改的是
build/var/awtk/src/base/widget.c文件的
ret_t widget_off_by_tag(widget_t* widget, int32_t tag)

ret_t widget_off_by_tag(widget_t* widget, uint32_t tag)
然后编译通过

# scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
/opt/gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -o build/var/awtk/src/base/widget.o -c -std=gnu99 -g -Wall -Os -DHAS_STD_MALLOC -DWITH_FS_RES -DHAS_STDIO -DWITH_VGCANVAS -DWITH_UNICODE_BREAK -DLINUX -DSTBTT_STATIC -DSTB_IMAGE_STATIC -DWITH_STB_IMAGE -DWITH_STB_FONT -DWITH_NANOVG_AGGE -DWITH_WIDGET_TYPE_CHECK -DLINUX -DHAS_PTHREAD -DENABLE_CURSOR -DHAS_TSLIB -I/opt/tslib/include -I/workdir/awtk/awtk -I/workdir/awtk/awtk/src -I/workdir/awtk/awtk/3rd -I/workdir/awtk/awtk/src/ext_widgets -I/workdir/awtk/awtk/tools -I/workdir/awtk/awtk/3rd/agge -I/workdir/awtk/awtk/3rd/agg/include -I/workdir/awtk/awtk/3rd/nanovg -I/workdir/awtk/awtk/3rd/nanovg/base -I/workdir/awtk/awtk/3rd/libunibreak -I/workdir/awtk/awtk/3rd/gpinyin/include build/var/awtk/src/base/widget.c
build/var/awtk/src/base/widget.c: In function 'widget_set_theme':
build/var/awtk/src/base/widget.c:392:15: warning: unused variable 'vgcanvas' [-Wunused-variable]
   vgcanvas_t* vgcanvas = canvas_get_vgcanvas(canvas);
               ^~~~~~~~
build/var/awtk/src/base/widget.c: At top level:
build/var/awtk/src/base/widget.c:961:7: error: conflicting types for 'widget_off_by_tag'
 ret_t widget_off_by_tag(widget_t* widget, int32_t tag) {
       ^~~~~~~~~~~~~~~~~
In file included from build/var/awtk/src/base/widget.c:33:0:
/workdir/awtk/awtk/src/base/widget.h:1210:7: note: previous declaration of 'widget_off_by_tag' was here
 ret_t widget_off_by_tag(widget_t* widget, uint32_t tag);
       ^~~~~~~~~~~~~~~~~
scons: *** [build/var/awtk/src/base/widget.o] Error 1
scons: building terminated because of errors.

解压后还是啥都不显示,看来是作者说的对。没有资源文件,以下是打包时候的日志

# ./release.sh 
APP_ROOT = ../awtk/demos
‘build/bin/demo1’ -> ‘release/bin/demo1’
‘build/bin/demo_animator’ -> ‘release/bin/demo_animator’
‘build/bin/demo_desktop’ -> ‘release/bin/demo_desktop’
‘build/bin/demo_thread’ -> ‘release/bin/demo_thread’
‘build/bin/demotr’ -> ‘release/bin/demotr’
‘build/bin/demoui’ -> ‘release/bin/demoui’
‘build/bin/demovg’ -> ‘release/bin/demovg’
‘build/bin/input_test’ -> ‘release/bin/input_test’
‘build/bin/mouse_test’ -> ‘release/bin/mouse_test’
‘build/bin/preview_ui’ -> ‘release/bin/preview_ui’
‘build/bin/tslib_test’ -> ‘release/bin/tslib_test’
‘build/bin/xml_to_ui’ -> ‘release/bin/xml_to_ui’
removed ‘release/bin/input_test’
removed ‘release/bin/mouse_test’
removed ‘release/bin/tslib_test’
removed ‘release/bin/demo1’
removed ‘release/bin/demovg’
removed ‘release/bin/demotr’
removed ‘release/bin/demo_animator’
removed ‘release/bin/demo_thread’
removed ‘release/bin/demo_desktop’
cp: cannot stat ‘../awtk/demos/assets/raw/data/*’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/fonts/*’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/images/x1’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/images/xx’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/images/svg/*.bsvg’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/scripts/*’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/strings/*.bin’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/styles/*.bin’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/ui/*.bin’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/xml/*’: No such file or directory
release/
release/bin/
release/bin/preview_ui
release/bin/demoui
release/bin/xml_to_ui
release/assets/
release/assets/raw/
release/assets/raw/strings/
release/assets/raw/styles/
release/assets/raw/xml/
release/assets/raw/data/
release/assets/raw/images/
release/assets/raw/images/svg/
release/assets/raw/scripts/
release/assets/raw/fonts/
release/assets/raw/ui/

那么问题来了,我从哪里拷贝这些资源文件呢
以下是v3s上面的错误日志

# ./release/bin/demo
try /mnt/awtk
try /mnt/awtk/release/bin
app_root=/mnt/awtk/release
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=en_US type=strings] not exist!!!
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=en type=strings] not exist!!!
fb_info_t: /dev/fb0
fb_info_t: xres=480 yres=272 bits_per_pixel=32 mem_size=522240
fb_info_t: red(16 8) green(8 8) blue(0 8)
line_length=1920 mem_size=522240 smem_len=522240
xres_virtual =480 yres_virtual=272 xpanstep=0 ywrapstep=0
ratio=1.000000 480 272
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
assets_manager_preload:681 info != NULL
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
assets_manager_preload:681 info != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=default type=font] not exist!!!
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=default type=font] not exist!!!
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=0, fd=-1, filename=/dev/input/mice)
Print mouse: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory

最近编辑记录 a32425262 (2019-10-24 10:23:52)

离线

#41 2019-10-24 11:24:46

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

不好意思,麻烦更新一下AWTK和awtk-linux-fb。

前几天加了多主题实时切换功能,资源加了一级目录,release.sh忘记更新了。

离线

#42 2019-10-24 12:42:45

a32425262
会员
注册时间: 2018-05-06
累计积分: 32

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

终于可以了,差点从入门到放弃

lixianjing 说:

不好意思,麻烦更新一下AWTK和awtk-linux-fb。

前几天加了多主题实时切换功能,资源加了一级目录,release.sh忘记更新了。

离线

#43 2019-10-24 14:04:05

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

辛苦了,是我的疏忽。

离线

#44 2019-10-31 09:35:10

zhenfanhei
会员
注册时间: 2018-01-18
累计积分: 251
个人网站

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

@lixianjing楼主大神,正在学习,想用自定义的数字图片,要用哪个控制来显示呢,我用image  image_value  label都试过了, 用了个timer,定义刷,或者2个按键+ 或-,在cb函数里面改变显示的图片,但没实现,求指点
QQ图片20191031092847.png
QQ图片20191031093039.png

代码类似这样
//widget_t*    image_temper11 = image_value_create(win, 43, 74, 63, 80);
//image_value_set_image(image_temper11, "dig_");
//image_value_set_value(image_temper11, 3);
 
widget_t*    image_temper11 = image_create(win, 43, 74, 63, 80);
image_set_image(image_temper11, "btn_1_manual");
image_set_draw_type(image_temper11, IMAGE_DRAW_DEFAULT);    //IMAGE_DRAW_ICON

timer_add(on_systime_update, win, 2000);


static ret_t on_systime_update(const timer_info_t* timer) {
...
    widget_t* image = widget_lookup(win, "image_temper11", TRUE);
   
  if(++level>9)
      level=9;

  image_set_image(image_temper11, "dig_6");    
  //image_value_set_value(image_temper11, level);

...
 
  return RET_REPEAT;
}

离线

#45 2019-10-31 13:55:28

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

image_value应该可以啊。遇到什么问题?

最近编辑记录 lixianjing (2019-10-31 14:12:24)

离线

#46 2019-10-31 14:41:23

zhenfanhei
会员
注册时间: 2018-01-18
累计积分: 251
个人网站

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

定时刷,图片不会更新,只会显示初始化时候的那张图,后面定时动态更新图片,不会变化,但我猎取系统时间显示是ok的
QQ图片20191031143905.png

QQ图片20191031143941.png

最近编辑记录 zhenfanhei (2019-10-31 14:49:24)

离线

#47 2019-11-03 17:57:51

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

我测试没问题啊,你参考一下:https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_value.c

你设置控件的名称了吗?上面的代码没看到。设置名称之后才能用widget_lookup查找:

```
widget_set_name(image_value, "image_temper11");
```

离线

#48 2019-11-03 19:29:28

zhenfanhei
会员
注册时间: 2018-01-18
累计积分: 251
个人网站

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

谢谢大神,参照demo已经弄好了,label, image_value都行了

离线

#49 2019-11-03 21:27:04

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

好的,谢谢支持。

离线

#50 2019-11-05 16:56:04

cris8259
会员
注册时间: 2019-09-25
累计积分: 146

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

编译出来的demo怎么都很大,7M左右

离线

#51 2019-11-05 17:38:51

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

strip是必备技能:

ls -l build/bin/demoui 
-rwxr-xr-x 1 l 6870909 Nov  5 01:35 build/bin/demoui

arm-linux-strip build/bin/demoui

ls -l build/bin/demoui 
-rwxr-xr-x 1  2063712 Nov  5 01:36 build/bin/demoui

离线

#52 2019-11-05 17:40:59

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

STM32F103用keil编译的代码约170K。

Program Size: Code=173094 RO-data=228930 RW-data=1040 ZI-data=24808  

离线

#53 2019-11-05 17:45:25

jimmy
Moderator
注册时间: 2017-10-29
累计积分: 261

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

不错,2M还是挺优秀的

离线

#54 2019-11-05 19:50:16

cris8259
会员
注册时间: 2019-09-25
累计积分: 146

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

arm-linux-gnueabi-strip build/bin/demoui
arm-linux-gnueabi-strip:build/bin/demoui: 不可识别的文件格式

不可识别怎么解决

最近编辑记录 cris8259 (2019-11-05 19:50:42)

离线

#55 2019-11-06 09:22:32

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

cris8259 说:

arm-linux-gnueabi-strip build/bin/demoui
arm-linux-gnueabi-strip:build/bin/demoui: 不可识别的文件格式

不可识别怎么解决

要用工具链配套的strip,如果你编译的PC版本,直接用strip即可。

离线

#56 2019-11-06 09:59:59

cris8259
会员
注册时间: 2019-09-25
累计积分: 146

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

2.编辑 awtk_config.py 设置工具链的路径
TSLIB_LIB_DIR='/opt/28x/tslib/lib'
TSLIB_INC_DIR='/opt/28x/tslib/include'
TOOLS_PREFIX='/opt/28x/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-linux-'

按照步骤2改成
#for prebuild tslib
TSLIB_LIB_DIR='/opt/28x/tslib/lib'
TSLIB_INC_DIR='/opt/28x/tslib/include'
TOOLS_PREFIX='/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-'
#TOOLS_PREFIX='/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-'

#for pc build
TOOLS_PREFIX=''
TSLIB_LIB_DIR=''
OS_FLAGS='-g -Wall '

发现TOOLS_PREFIX有两次赋值

离线

#57 2019-11-06 11:20:28

cris8259
会员
注册时间: 2019-09-25
累计积分: 146

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

有没有简单浅显的入门教程。clone awtk.git  awtk-examples.git  awtk-linux-fb.git ,这三个文件夹之间有个什么样的关系,文件之间是怎么关联起来的?自己的代码文件应该放在哪里,什么样的文件组织形式比较合适?

离线

#58 2019-11-06 13:46:57

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

https://github.com/zlgopen/awtk-linux-fb 的README里有写啊,三者并列放到同一个目录。

离线

#59 2019-11-06 14:02:41

cris8259
会员
注册时间: 2019-09-25
累计积分: 146

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

让开发者自己写文档着实难为了。

离线

#60 2019-11-06 15:58:43

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

谢谢支持。我们会持续完善文档。

离线

#61 2019-11-06 17:19:11

EddyZhan
会员
注册时间: 2018-05-11
累计积分: 35

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

lixianjing 说:

谢谢支持。我们会持续完善文档。

想问一下大神,串口收到的数据想显示到ATWK界面中,如何操作比较好呢?

能否直接修改win_main.c文件,但是这样感觉软件架构就乱了。。

有没有其他好的方法?

离线

#62 2019-11-06 18:03:38

zhenfanhei
会员
注册时间: 2018-01-18
累计积分: 251
个人网站

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

楼主,有个新问题请教, 想把中文字符传到strings.xml里面的%s, 要用什么办法呢?
locale设置的中文,
<string name="Mlti_load1 %s">
    <language name="en_US">Mlti_load1 %s</language>
    <language name="zh_CN">多功能负载1 %s</language>

代码里面这样:

          tk_snprintf(str, sizeof(str), format, "Open"); //可以
          widget_set_tr_text(btn, str);       

但传中文字符串就不行了, 传strings.xml里面定义过的英文串也不行,还是显示的英文,若传中文串过去则不会显示出来

离线

#63 2019-11-07 11:02:56

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

zhenfanhei 说:

楼主,有个新问题请教, 想把中文字符传到strings.xml里面的%s, 要用什么办法呢?
locale设置的中文,

但传中文字符串就不行了, 传strings.xml里面定义过的英文串也不行,还是显示的英文,若传中文串过去则不会显示出来

中文需要用UTF8编码。

离线

#64 2019-11-07 11:07:15

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

EddyZhan 说:
lixianjing 说:

谢谢支持。我们会持续完善文档。

想问一下大神,串口收到的数据想显示到ATWK界面中,如何操作比较好呢?

能否直接修改win_main.c文件,但是这样感觉软件架构就乱了。。

有没有其他好的方法?

这个话题很有意思。有空可以玩玩AWTK-MVVM: https://github.com/zlgopen/awtk-mvvm

离线

#65 2019-11-07 11:59:16

zhenfanhei
会员
注册时间: 2018-01-18
累计积分: 251
个人网站

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

楼主大神, widget_set_text_utf8 (btn, "打开");   显示不出来, 
widget_set_text_utf8 (btn, "Open"); 能显示,这个可能是什么情况?

可以了,结贴,xx为strings.xml中定义过的串就行了,
widget_set_tr_text(btn, "xx");

最近编辑记录 zhenfanhei (2019-11-07 12:04:38)

离线

#66 2019-11-07 14:07:00

lixianjing
会员
注册时间: 2019-04-25
累计积分: 49

Re: ZLG开源 GUI 引擎 AWTK 1.1 发布

zhenfanhei 说:

楼主大神, widget_set_text_utf8 (btn, "打开");   显示不出来, 
widget_set_text_utf8 (btn, "Open"); 能显示,这个可能是什么情况?

可以了,结贴,xx为strings.xml中定义过的串就行了,
widget_set_tr_text(btn, "xx");


1. 用vscode把源文件转换程UTF8-BOM格式。

2. 确认字体中包含中文字库。

离线

页脚