zoukankan      html  css  js  c++  java
  • QtScript, QML, Quick1, Quick2, Declarative 之间的关系

    QtScript是基于 ECMAScript 的脚本语言

    在脚本中可以访问原有C++代码中的QObject类型及其子类的实例,连接信号和槽;也可以创建QObject类型及其子类的实例。

    但是QtScript并不能独立运行,必须和C++代码配合才能实现完整的功能。

    在 Qt 5 中把 Qt Script 和 Qt Script Tool 2个模块,从模块的列表中消失了,虽然依然保留在了 Qt 5 中,但重要性降低了不少。

    Qt Quick1 是一个集合,用于在各种移动设备上创建交互界面。设计的目的是为了是UI设计师和开发人员可以更紧密的工作。

    其中包含了用户界面元素、一种描述交互界面的语言(QML)、QML语言的Runtime(Qt Declarative 模块)

    QML 在语法上遵守 JavaScript 的语法,并进行了 Qt 必须的扩展。

    Qt Declarative 模块提供了一个动态框架用来构建动态的交互界面,为 QML 提供运行环境;解决了 C++ 和 QML 的交互问题。

    Qt Quick2 提供了5个 Qt模块 作为开发 QML 程序的框架,包括 Qt QML, Qt Quick, Qt Quick Controls, Qt Quick Dialogs, Qt Quick Layouts 共5个模块

    目前已经是 Qt 5 的时代,但根据之前 Qt 3 的经验, Qt 4 还将继续存在很长的时间。
    在 Qt 5 中 QtScript 被降级; Declarative 模块被2个 QML 模块取代; Quick1 除了支撑旧的 QML 脚本外,几乎没有什么用途了; Quick2 和 QML 在未来的 Qt 版本中会得到越来愈多的重视,在 Qt 5 中 Quick2 添加了很多有意思的功能,还需要继续深入的学习。

    那么 QtScript 和 QML 有没有关系呢?
    首先2者没有直接关系,都是脚本。
    QtScript 遵从 ECMAScript 的标准
    QML 是 Qt 自己定义的语法,类似 JSON
    QML 设计本意是为了使用 动态语言 编写交互界面
    QtScript 设计本意是为了使得 动态语言 业务逻辑部分,当然也可以是部分界面层次的逻辑。

    http://www.blogs8.cn/posts/WtDY5e4

  • 相关阅读:
    Spring-data-jpa和mybatis的比较及两者的优缺点?
    http和https的区别
    Springboot中spring-data-jpa实现拦截器
    RabbitMQ客户端页面认识
    设计模式之策略模式
    设计模式之策略模式应用实例(Spring Boot 如何干掉 if else)
    设计模式之装饰器模式
    网页跳转小程序
    好帖子
    git 回滚操作
  • 原文地址:https://www.cnblogs.com/findumars/p/6350284.html
Copyright © 2011-2022 走看看