AWTK全称为Toolkit AnyWhere,是ZLG倾心打造的一套基于C语言开发的GUI框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎,并支持跨平台同步开发,一次编程,终生使用。

AWTK当前升级到了v1.2版本,相对于v1.1,我们完善了许多细节,增加了部分特性、控件以及API等,让AWTK支持更多的功能和更炫酷的效果。

1.2版本更新的内容

细节完善

  • 输入法候选字支持滚动;
  • slider支持上下左右键;
  • guage pointer支持锚点;
  • slide view indicator作为独立控件;
  • 完善idl gen工具;
  • 完善doc gen工具;
  • 支持用focusable属性设置控件焦点;
  • 去掉TK_DEFAULT_FONT宏定义;
  • 增加style border_width;
  • 支持动态修改屏保时间;
  • SDL FB模式启用脏矩形;
  • 新增内存耗尽处理;
  • ...

新增特性

  • cairo实现的vgcanvas;
  • 支持32位Windows编译;
  • 增加条件变量tk_cond_var;
  • 支持用tab键切换控件的焦点;
  • 支持在不同位置弹出完整窗口动画;
  • svg/gif支持从文件系统中加载图片;
  • 增加widget_gen脚本生成自定义控件;
  • 增加self_layouter_menu实现弹出菜单;
  • 增加lcd_mem_special;
  • style增加margin参数。

新增控件

  • mledit多行编辑器;
  • overlay overlay窗口;
  • hscroll_label可水平滚动的文本。

新增重要API

  • timer_modify
  • widget_add_idle
  • widget_find_animator

在线运行效果: http://zlgawtk.bceapp.com/

AWTK介绍:

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

AWTK 寓意有两个方面:

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

AWTK 源码仓库:

  • 主源码仓库:https://github.com/zlgopen/awtk
  • 镜像源码仓库:https://gitee.com/zlgopen/awtk

运行效果截图:

二、最终目标:

  • 支持开发嵌入式应用程序。
  • 支持开发 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、Vulkan 和 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)。

作者: lixianjing

软件下载:「链接」

gui窗口遮挡算法_软件更新丨AWTK 1.2 发布,国产开源 GUI 引擎相关推荐

  1. gui窗口遮挡算法_基于 C 语言开发的 GUI 框架

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

  2. element vue 动态单选_软件更新丨vue-element-admin 4.0.0 beta 发布,后台集成方案

    vue-element-admin 4.0.0 beta 发布了. vue-element-admin 是一个后台集成解决方案,它基于 vue 和 element.它使用了最新的前端技术栈,内置了 i ...

  3. python的gui库哪个好_常用的13 个Python开发者必备的Python GUI库

    [Python](http://www.blog2019.net/tag/Python?tagId=4)是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布.P ...

  4. 国产开源 GUI 引擎 AWTK 1.1 发布

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   一.介绍 AWTK全称Toolkit AnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统.WEB.各种小程序.手机和PC打造的 ...

  5. mybatis plus 导出sql_软件更新丨mybatis-plus 3.0.7 发布,辞旧迎新

    点击右上方,关注开源中国OSC头条号,获取最新技术资讯 Mybatis-Plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件, 减少你的开发周期优化 ...

  6. 苹果主题商店_不等更新丨苹果手机抢先体验微信夜间模式,附详细教程

    昨天微信暗黑模式被微博刷屏了,从去年一直等到现在,想来用苹果手机的小伙伴们都很期待非常漂亮的微信暗黑模式,毕竟晚上看微信的话也能保护眼睛.其实,不必等腾讯更新,我们完全可以抢先体验微信暗黑模式,那阿俊 ...

  7. 苹果电脑删除下载的更新文件_软件更新,无需手动下载更新文件。不再依赖QQ浏览器。...

    经过一段时间折腾,学习了一些新玩意. 以后的脚本可以达到不下载更新文件而直接启动就是最新版的,但是全程需要良好网络. 下载链接再放一遍 https://wwa.lanzous.com/b099irtr ...

  8. 干支纪年法简便算法_传感智库丨流速面积法测量明渠断面流量

    随着工农业生产和生活用水量的增加,水资源供需矛盾日益尖锐,计划用水和水量调配工作显得越来越重要,很多场合都需要能够迅速.准确地测量明渠断面流量. 目前,国内外研究水流流量的方法主要有:垂直多普勒法.流 ...

  9. resharper字体_【更新】ReSharper v2018.3发布

    ReSharper是一个代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE. ReSharper Ultimate 2018.3提供了对Visual Studio ...

最新文章

  1. 二进制计算机课教案,计算机与二进制教案.pdf
  2. WinDriver的一些
  3. 在多线程 Python 程序中实现多目标不同缩进格式的 logging
  4. java:BIO, NIO
  5. Oracle的 listagg() WITHIN GROUP ()函数使用
  6. 如果去掉UITableView上的section的headerView和footerView的悬浮效果
  7. Istio:一个用于微服务间通信的服务网格开源项目
  8. 51Node 01组成的N的倍数
  9. 你疏漏的 JS 函数硬核知识?这里帮你总结了
  10. amd核芯显卡控制面板自定义分辨率_AMD翻盘,NVIDIA翻车,你的下一张光追显卡选哪个...
  11. 苹果WWDC 2019看点回顾:iOS黑化、iPad系统独立、王者Mac Pro发布...
  12. 焦虑症患者,整天心神不宁,忧心忡忡怎么办?
  13. Ubuntu系统中添加中文字体和修改默认中文字体
  14. matlab英文词汇,matlab中常见英文词含义
  15. 【WIN32之旅】WINDOWS错误处理与参考(四)
  16. 九歌·湘夫人 先秦 · 屈原
  17. 尚硅谷-微信小程序文档
  18. 取消js单选框的小圆圈
  19. “互联网+”时代,易信企业版能否在企业级服务市场异军突起?
  20. 面试了一个 46 岁的程序员,思绪万千

热门文章

  1. 1.1.2 操作系统的特征(并发、共享、虚拟、异步)
  2. Java转gcode,学用树莓派(8)-实战案例:基于树莓派JAVA的微型激光雕刻机
  3. linux python3.8源码安装_linux 下从源码安装 Python——小白踩坑记
  4. 汇编原理实验 --类型统计(字母,数字,其他字符的个数)
  5. 中断(interrupted()、isInterrupted())、Executor的中断
  6. 算法练习day13——190401(前缀树、贪心策略拼接字符串使字典序最小)
  7. python模块cv2人脸识别_python face_recognition模块实现人脸识别
  8. CCS中给工程加入C66x CSL库和头文件
  9. 启明云端分享| 小明实测优化后的ESP32-S2点 3.92寸分辨率为320*320的彩屏刷新帧率
  10. Vue+ElementUI: 手把手教你做一个audio组件