AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。
欢迎广大开发者一起参与开发:生态共建计划。
AWTK 是跨平台的,这有两个方面的意思:
AWTK 本身是跨平台的。目前支持的平台有 ZLG AWorksOS、Windows、Linux、MacOS、嵌入式 Linux、Android、iOS、Web 和嵌入式裸系统,可以轻松的移植到各种 RTOS 上。AWTK 以后也可以运行在各种小程序平台上运行。
AWTK 同时还提供了一套跨平台的基础工具库。其中包括链表、数组、字符串 (UTF8 和 widechar),事件发射器、值、对象、文件系统、互斥锁和线程、表达式和字符串解析等等,让你用 AWTK 开发的应用程序可以真正跨平台运行。
AWTK 通过一系列的手段保证 AWTK 应用程序高效运行:
AWTK 通过下列方式极力让代码稳定可靠:
AWTK 本身是用 C 语言开发的,可以通过 IDL 生成各种脚本语言的绑定。生成的绑定代码不是简单的把 C 语言的 API 映射到脚本语言,而是生成脚本语言原生代码风格的 API。目前支持以下语言 (以后根据需要增加):
下载代码
git clone https://github.com/zlgopen/awtk.git
Windows 下可以用带 GUI 的 git 下载代码。
更新代码(在 awtk 目录下运行)
git pull
用 git 下载代码的好处是以后更新代码非常快。
下载 zip 文件。解压之后需要把文件夹改名为 awtk。
如果没有安装 nodejs, scons 和 sdl2,请在终端运行下面的命令 (假定已安装 brew):
brew install scons sdl2 node
编译运行 (在终端下,进入 awtk 所在的目录,并运行下列命令):
scons ./bin/demoui
如果没有安装 scons 和依赖的软件包,请在终端运行下面的命令:
sudo apt-get install gcc g++ scons libsndio-dev libgtk-3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libasound2-dev git vim clang-format libharfbuzz-dev nodejs
编译运行 (在终端下,进入 awtk 所在的目录,并运行下列命令):
scons ./bin/demoui
在 Ubuntu 14 上无法启动,请参考 FAQ 修改。
请先安装 python(64 位系统要安装 64 位版本的 python),scons 和 Visual Studio C++(版本 >=2017)
如果没有安装 pywin32,请 pip 安装:
pip install pywin32
如果没有安装nodejs,请到 nodejs下载并安装。
编译运行 (在命令行模式下,进入 awtk 所在的目录,并运行下列命令):
scons bin\demoui
pip install Pillow
npm install -g glob
第三方提供:
AWTK-多线程 由实际开发中的idle的使用,产生困惑,继而理解AWTK的线程相关的模块设计 reference: AWStudio社区版 (zlg.cn) 线程 thread src/tkc/thread.h struct _tk_thread_t { /* 平台无关成员(移植时必须定义) */ void* args; /* 线程回调函数上下文 */
AWTK 1.环境搭建 reference: AWTK的参考文档docs 2.目录结构 bin/ cfg.conf 数据保存至此 lcdgui.exe 可直接查看修改结果,图形界面显示 design/ default strings ui 大量XML文件,可由AWTK Designer绘制生成XML文件 design lib/ 库文件目录 res/ 资源文件目录 raw 原始资源文件目录 inc
Go 语言绑定笔记 理论上 AWTK支持 Go 语言并不难, AWTK 已经支持 jerryscript、nodejs、quickjs、lua、python、java、minijvm 和 cpp 等语言的绑定。不过每种语言都有自己的特性,所以每次增加新的语言,也是对 AWTK 绑定机制的考验和完善。 这次实现 Go 语言绑定大概花了两天时间。一天时间用来写代码生成器,一天时间用来写 scripta
移植配置问题整理 1.如何配置交叉编译工具链? 进入awtk-linux-fb目录下 打开awtk_config.py 配置如下: TSLIB_LIB_DIR='/home/vmuser/pengshuowang/zmp1107/awtk/tslib-1.15/__install/lib' TSLIB_INC_DIR='/home/vmuser/pengshuowang/zmp1107/awtk
AWTK-MVVM 在 STM32H743 上的移植笔记 本项目除了实现基本功能的移植外,还提供了如下功能: 集成实时操作系统 (RTOS)(腾讯的 TinyOS) 集成 FATFS 文件系统,访问 SD 卡的数据。 实现从文件系统加载应用程序的资源。 使用 Sqlite 存储数据。 支持 google 拼音输入法。 支持 mvvm 。 1. 介绍 在移植的时候,不管是什么板子,拿到板子的资料后,
AWTK 中的字符串编码 1. 背景 不少同学在使用 AWTK 的过程中,遇到过字符串编码的问题。这里介绍一下 AWTK 中的字符串编码,希望能让新手少走弯路。 AWTK 中的字符串都是 Unicode 的,但是会使用两种不同的编码: UTF-8 其字符串类型为 char*。 UTF-32 其字符串类型为 wchar_t*。 使用场景如下: 不需要显示的字符串使用 UTF-8 编码。如控件名、属性
一、介绍 关于 iotjs iotjs 是三星开源的 javascript 物联网开发平台。它为 javascript 应用程序提供了访问硬件、网络、文件系统和异步化的能力,功能类似于 nodejs,但无论是代码体积还是内存需求,iotjs 都要小很多,是用 javascript 开发 iot 设备应用程序的首选。 关于 AWTK AWTK 全称 Toolkit AnyWhere,是 ZLG 开发
AWTK-MVVM是一套为AWTK用C语言开发,并支持各种脚本语言的MVVM框架,实现了数据绑定、命令绑定和窗口导航等基本功能,使用AWTK-MVVM开发应用程序,无需学习AWTK本身的API,只需学习绑定规则和Model的实现方式即可。 一、MVVM MVVM(Model-View-ViewModel)是分离用户界面和业务逻辑的经典模式。 分离用户界面和业务逻辑的好处: 让用户界面可以独立变化。
欢迎为 Nuxt.js 做出开源贡献! 提交问题 我们使用CMTY使贡献者和维护者更容易的提交问题和新功能改进。 请确保包含一个克隆仓库或CodeSandBox,以便可以更好地再现错误,我们开始修复它的速度越快! Pull Requests 欢迎大家提 PR( 源码拉取请求 ),即便是修复一个拼写错误。 任何重大改进都应与现有功能请求或错误报告相关联。 开始 Fork 代码仓库到您自己的GitHu
主要内容:1.开源OLAP综述,2.开源数仓解决方案1.开源OLAP综述 如今的开源数据引擎多种多样,不同种类的引擎满足了我们不同的需求。现在ROLAP计算存储一体的数据仓库主要有三种,即StarRocks(DorisDB),ClickHouse和Apache Doris。应用最广的数据查询系统主要有Druid,Kylin和HBase。MPP引擎主要有Trino,PrestoDB和Impala。这些引擎在行业内有着广泛的应用。 在云资源层,主要有E
还有错误警告“无法解析符号'intellij'”如何修复?
问题内容: 我有一个大型的GUI项目,我想移植到Linux。在Linux中用于GUI编程的最推荐框架是什么?诸如KDE / Gnome之类的框架是否可用于此目标?还是最好使用X以外的更通用的东西? 我觉得,如果我选择Gnome或KDE中的一种,那么我将为一部分选择了另一种Linux的Linux市场关闭市场。(是的,我知道有重叠) 有没有更好的办法?还是我必须创建2个完整的GUI应用程序才能覆盖近1