当前位置: 首页 > 软件库 > 程序开发 > GUI开发框架 >

AWTK-MVVM

C 语言 MVVM 框架
授权协议 LGPL
开发语言 C/C++
所属分类 程序开发、 GUI开发框架
软件类型 开源软件
地区 国产
投 递 者 堵才哲
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

AWTK-MVVM是一套为AWTK用C语言开发,并支持各种脚本语言的MVVM框架,实现了数据绑定、命令绑定和窗口导航等基本功能,使用AWTK-MVVM开发应用程序,无需学习AWTK本身的API,只需学习绑定规则和Model的实现方式即可。

一、MVVM

MVVM(Model-View-ViewModel)是分离用户界面和业务逻辑的经典模式。

分离用户界面和业务逻辑的好处:

  • 让用户界面可以独立变化。
  • 方便为业务逻辑编写单元测试程序。
  • 方便UI设计师和程序员的分工和合作。

MVVM相比MVP和MVC的优势:

  • 使用更简单。
  • 分离更彻底。
  • 声明式的编程更容易维护。

MVVM的核心思想有两个:

  • 通过数据绑定实现View与Model之间的数据交换。
  • 通过命令绑定实现View事件与Model行为之间的关联。

二、AWTK-MVVM

AWTK-MVVM是一套为AWTK用C语言开发,并支持各种脚本语言的MVVM框架,实现了数据绑定、命令绑定和窗口导航等基本功能,使用AWTK-MVVM开发应用程序,无需学习AWTK本身的API,只需学习绑定规则和Model的实现方式即可。与其它MVVM框架相比,其特点有:

  • 代码小。
  • 性能高。
  • 内存开销小。
  • 隔离更彻底。
  • 可移植到其它GUI。
  • 支持多种编程语言(目前支持C/JS)。

三、使用方法

  • 获取awtk并编译。
git clone https://github.com/zlgopen/awtk.git
cd awtk
scons
  • 获取awtk-mvvm并编译(awtk和awtk-mvvm处于用一级目录)
git clone https://github.com/zlgopen/awtk-mvvm.git
cd awtk-mvvm
git clone https://github.com/jerryscript-project/jerryscript.git 3rd/jerryscript
scons

编译linux-fb版本,请修改SConstruct

#for pc
#sys.path.insert(0, '../awtk/')

#for linux-fb
sys.path.insert(0, '../awtk-linux-fb/')
  • 运行demos
./bin/demo1

本文以Linux/MacOS为例,Windows可能会微妙差异,请酌情处理。

四、文档

五、示例

C DEMO JS DEMO 说明
demo1 jsdemo1 数据绑定基本用法
demo2 jsdemo2 trigger参数的用法
demo3 jsdemo3 converter参数的用法
demo4 jsdemo4 显式更新(Trigger=Explicit)的用法
demo5 jsdemo5 validator参数的用法
demo6 jsdemo6 命令绑定的基本用法
demo7 jsdemo7 以计算器为例的综合用法
demo8 jsdemo8 以shape编辑为例的综合用法
demo9 jsdemo9 多窗口的基本用法
demo10 jsdemo10 定时器的基本用法
demo11 jsdemo11 一个视图多个ViewModel的用法
demo12 jsdemo12 多窗口之间参数传递
demo13 jsdemo13 列表视图的基本用法
demo14 jsdemo14 快捷键的基本用法
demo15 (no) 自定义导航器处理插件,以及MVVM窗口和非MVVM窗口的交互
(no) jsdemo15 combox 数据联动
(no) jsdemo16 动态界面
demo16 (no) 集成硬件外设
demo17 (no) 无GUI情况集成硬件外设
(no) jsdemo17 控制控件的可见性
(no) jsdemo18 复杂属性值的表示方法
demo19 (no) 控制动画启停

完整示例及模板项目:awtk-mvvm-c-hello

  • MVVM MVVMModel-View-ViewModel,它是MVC的改进版。 MVVM优点: 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。 独立开发。开发人

  • 一、前言 上周简单介绍了AWTK-MVVM,并按照规则设计了图书管理系统的Model,详见文章:AWTK-MVVM学习(一)。本周学习了AWTK-MVVM的数据绑定和命令绑定,本文记录其中的关键内容,更详细的教程请参考awtk-mvvm/docs下的md文档。 awtk-mvvm仓库:http://github.com/zlgopen/awtk-mvvm 二、数据绑定 在进行数据绑定之前,先要建立

  • 一、前言 awtk-widget-chart-view 是 AWTK 提供的图表自定义控件,该控件包含:曲线图、柱状图和饼图。前段时 间记录了该控件适配 AWTK-MVVM C版本的过程,具体请参考:awtk-widget-chart-view-mvvm C版本适配笔记,这次记录一下适配 JS 版本的过程。 AWTK是 ZLG 开发的开源 GUI 引擎,官网地址:https://www.zlg.c

 相关资料
  • Model-View-ViewModel (MVVM)是用于开发软件应用程序的架构设计模式。 MVVM由Microsoft Architect John Gossman于2005年开发。该模式源自模型 - 视图 - 控制器(MVC)模式。 MVVM的优势在于它将应用程序层的图形用户界面与业务逻辑分开。 MVVM负责处理来自底层模型的数据,以便非常容易地表示和管理它。 MVVM中的ViewModel

  • AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。 欢迎广大开发者一起参与开发:生态共建计划。 AWTK 寓意有两个方面: Toolkit AnyWhere。 ZLG 物联网操作系统 AWorksOS 内

  • 一、介绍 关于 iotjs iotjs 是三星开源的 javascript 物联网开发平台。它为 javascript 应用程序提供了访问硬件、网络、文件系统和异步化的能力,功能类似于 nodejs,但无论是代码体积还是内存需求,iotjs 都要小很多,是用 javascript 开发 iot 设备应用程序的首选。 关于 AWTK AWTK 全称 Toolkit AnyWhere,是 ZLG 开发

  • 我在后台有< code>ViewModel(实现< code > INotifyPropertyChanged )和类< code>Category,它只有一个< code>string类型的属性。我的ComboBox SelectedItem绑定到类别的实例。当我更改instance的值时,SelectedItem没有更新,Combobox也没有更改。 编辑:代码 组合框: 物业: 我尝试的是:

  • 概述 javascript csharp cpp json html php python markdown typescript css dockerfile

  • 当您设置 A370 时,您可从以下语言选择一种您要使用的语言: 英语 西班牙语 葡萄牙语 芬兰语 丹麦语 德语 瑞典语 挪威语 德语 意大利语 芬兰语 波兰语 俄语 简体中文 日语 印尼语 土耳其语 捷克语 韩语 在设置后,您可在 Flow 应用程式或网络服务中变更语言。