网站大量收购闲置独家精品文档,联系QQ:2885784924

QML入门培训.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
QML入门基础 主讲人:Yan ChaoMing Agenda 背景 QML的简介 QML语法和Qt Quick基础 QML与C++的交互 与Graphics View渲染的对比 背景 将程序的用户界面称为前端,将程序的数据存储和业务逻辑称为后端,那么传统Qt应用程序的前段和后端都是使用C++来完成的。对于现代软件开发而言,这里有一个存在已久的冲突:前端的演化速度远快于后端。当用户希望在项目中改变界面,或者重新开发界面时,这种冲突就更明显地显现出来。快速演化的项目必然要求快速的开发。 可否将前端的一个开发给独立出来呢? QML的简介 QML(Qt Meta—Object Language, Qt元对象语言)是一种用于描述应用程序用户界面的声明式编程语言,使用一些可视化组件以及这些组件之间的交互来描述用户界面。QML提供了一个具有高可读性的类似JSON的声明式语法,并提供必要的JavaScript语句和动态属性绑定的支持。 Qt Quick是QML的一个数据类型和功能的标准库,包含了可视化类型、交互类型、动画、模型和视图、粒子特效和渲染特效等。在QML程序中,可以直接通过简单的import语句来使用该模块提供的所有功能。在Qt5中的Qt Quick模块是2.x版本。QML是语言名称,Qt Quick是QML语言库的名称,它定义并实现了QML语言及其解释引擎的基础构件,提供了共开发人员扩展的接口,以及将QML代码与JavaScript和C++集成在一起的接口。Qt QML模块是QML语言的具体实现;Qt Quick模块是Qt Quick库的具体实现。 Qt Quick 模块是一个编写QML应用的标准库,提供了两种接口:使用QML语言创建的QML接口和使用C++语言扩展QML的C++接口。使用Qt Quick模块,设计人员和开发人员可以轻松的构建流畅的动态的QML用户界面,并且在需要的时候,将这些用户界面连接到任何C++后端。 我们可以用一种极具革命性的方式来创建现代用户界面,即把UI设计和业务逻辑完全分离,使得快速UI原型开发成为可能。 QML语法和基础 1、导入语句(import) 用于模块、JavaScrip资源和组件的导入,首先导入QtQuick模块。 2、基础类型 基础可视:Item、Rectangle、Text、Image等。 布局管理器:Column、Row、Grid、Flow等 事件处理:MouseArea、Timer等(鼠标键盘等信号) 动态加载组件:Loader 模型和视图:ListView、PathView等 2-1、id特性 2-2、属性特性(属性的自定义,赋值) 2-3、信号和信号处理器 2-4、附加属性和附加信号处理器 2-5、ObjectName属性 接下来让我们看看一个qml的一个官方例程 photosurface 2-1、id特性 2-2、属性特性(属性的自定义,赋值) 2-3、信号和信号处理器 2-4、附加属性和附加信号处理器 2-5、ObjectName属性 3、进阶 3-1、 Canvas(类似Qpainter功能,用户可以随心所欲的绘制自己想要的控件) 3-2、粒子系统 是一种三维计算机图形学中模拟一些特定的模糊现象的技术。很多自然现象,比如火、爆炸、烟雾、水流、云、落叶、流星等这种抽象视觉效果,就可以使用粒子效果进行模拟。 3-3、多媒体应用(视频、音乐播放) 3-4、3D场景 关于粒子效果,让我们看看affectors这个例程的效果。 QML与C++的交互 目的:QML与C++整合的目的在于使QML能够单纯地进行界面的渲染,而由C++完成业务逻辑和数据集。 QML和 C++对象可以通过,signals,slots和 属性修改进行交互。对于一个C++对象,任何数据都可以通过Qt的 Meta-Object System暴露给QML,同时,任何的QML对象数据通过Meta-object system在C++端直接访问。 在这里不外乎有三种方法: 1. 把Qt C++中的对象或类型暴露给 QML端,供QML端使用。 2. QML中的Signal Handler(相当于Qt C++发送信号给QML端,QML端的Signal Handler进行处理)。 3. 在Qt C++端创建QML对象,既然对象都有了。那你想怎么样它就怎么样它呗。 QML与C++的交互 目的:QML与C++整合的目的在于使QML能够单纯地进行界面的渲染,而由C++完成业务逻辑和数据集。 内容: QML和 C++对象可以通过,signals,slots和 属性修改进行交互。对于一个C++

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档