c語言gui界面設計(基於C語言開發的)
2023-05-05 04:13:45 2
一、介紹AWTK全稱Toolkit AnyWhere,是ZLG開發的開源GUI引擎,旨在為嵌入式系統、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個功能強大、高效可靠、簡單易用、可輕鬆做出炫酷效果的GUI引擎。
AWTK寓意有兩個方面:
Toolkit AnyWhere。ZLG物聯網作業系統AWorks內置GUI。運行效果截圖: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。目前支持以下語言(以後根據需要增加):
CLuaJavascript on jerryscriptJavascript on nodejs8.國際化
支持Unicode。支持輸入法。支持字符串翻譯(實時生效)。支持圖片翻譯(實時生效)。文字雙向排版(計劃中)。AWTK源碼倉庫:主源碼倉庫:https://github.com/zlgopen/awtk鏡像源碼倉庫:https://gitee.com/zlgopen/awtk,