qml 是一种声明性语言,允许根据用户界面的可视组件以及它们如何相互交互和相互关联来描述用户界面。qml 是一种高度可读的语言,旨在使组件能够以动态方式互连,并且允许组件在用户界面中轻松重复使用和自定义。
使用 qt quick,开发人员可以轻松地在 qml 中构建流体动画用户界面,并且可以选择将这些用户界面连接到任何后端 c++ 库。
<a href="#%e7%ae%80%e8%bf%b0">简述</a>
<a href="#%e4%bb%80%e4%b9%88%e6%98%af-qml">什么是 qml</a>
<a href="#%e4%bb%80%e4%b9%88%e6%98%af-qt-quick">什么是 qt quick</a>
<a href="#qmlqt-quick-%e6%80%bb%e7%bb%93">qmlqt quick 总结</a>
<a href="#%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7">开发工具</a>
qml 是一种用户界面规范和编程语言。它允许开发人员和设计师创建高性能、流畅的动画和视觉吸引人的应用程序。qml 提供了一种高度可读、声明性、类似 json 的语法,支持与动态属性绑定相结合的命令式 javascript 表达式。
qml 全称:qt meta language 或 qt modelling language,主要包含以下特征:
像脚本语言一样定义界面的元素
是对 ecmascript 标准的扩展(参见:javascript)
提供了建立一颗 qml 元素对象树的机制
支持 qml 元素和基于 qobject 的 c++ 对象之间的交互
qml 包含了一套 qml 元素
图形的和行为的基础组成部分
可以通过 qml 文档来建立更加复杂的元件和 qml 应用
可以用来对现有程序扩充,或是编译一个全新的程序
qml 可以使用 c++ 完全扩展
qt quick 是 qml 类型和功能的标准库。包括视觉类型、交互式类型、动画、模型和视图、粒子效果和着色效果,可以使用单个 import 语句访问所有功能。
qt quick 全称:qt user interface creation kit,主要包含以下特征:
一个为创建更好的界面的高级 ui 技术
无需掌握 c++ 技术,javascript 知识会有不少帮助
针对界面设计人员和开发者
使设计师和开发人员“说同样的语言”
双方可以同时参与迭代开发
无需单独的 flash 或 ppt ui 原型
设计人员用 qt quick,我猜一定是想多了,“自娱自乐”下就行!
qt 的 meta-object 系统提供了 qml 和 c++ 关联的机制
qt 属性机制
信号与槽机制
qml 为开发人员预定义了一套类型
可以很容易的使用 qml 进行扩展
可以使用 c++ 进行扩展
qt quick 用来为开发人员设计 qt 应用程序的可视化界面
了解 javascript(+ html + css)是学习 qml 的前提条件,虽然没有严格的要求,但还是建议掌握。
qt creator 是 qt 开发的首选工具,当然,也可用于 qt quick。
qt 提供了一个 qmlscene 工具(qt 4.x 为 qmlview),用于运行单独的 qml/javascript 程序。
让我们可以直接查看 qml 文件,而不必将其加载到 qt 应用中。
主要是用于开发测试
提供了一种“dummy”机制,动态的为 qml 提供数据
最终的数据将由 qt/c++ 代码所提供
注意:要将 qml/qt quick 界面嵌入到 qt/c++ 应用程序中,需要使用 qt4.7 及以上版本(最新官方版本 qt 5.7)。