初识QML

简述

QML 是一种声明性语言,允许根据用户界面的可视组件以及它们如何相互交互和相互关联来描述用户界面。QML 是一种高度可读的语言,旨在使组件能够以动态方式互连,并且允许组件在用户界面中轻松重复使用和自定义。

使用 Qt Quick,开发人员可以轻松地在 QML 中构建流体动画用户界面,并且可以选择将这些用户界面连接到任何后端 C++ 库。

  • 简述
  • 什么是 QML
  • 什么是 Qt Quick
  • QMLQt Quick 总结
  • 开发工具

版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820

什么是 QML?

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?

Qt Quick 是 QML 类型和功能的标准库。包括视觉类型、交互式类型、动画、模型和视图、粒子效果和着色效果,可以使用单个 import 语句访问所有功能。

Qt Quick 全称:Qt User Interface Creation Kit,主要包含以下特征:

  • 一个为创建更好的界面的高级 UI 技术

    • 无需掌握 C++ 技术,JavaScript 知识会有不少帮助
  • 针对界面设计人员和开发者
    • 使设计师和开发人员“说同样的语言”
    • 双方可以同时参与迭代开发
    • 无需单独的 Flash 或 PPT UI 原型

设计人员用 Qt Quick,我猜一定是想多了,“自娱自乐”下就行!

QML/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)。

时间: 2024-10-14 18:16:40

初识QML的相关文章

《细说 QML》

关于命名 "中文是最叼的"...原本想给本系列也起一个很"叼"的名字,无奈笔者语言匮乏,绞尽脑汁才想出一个还算凑合的名字 - <细说 QML>,关于"细说",新华词典中有记载: 细说 [xì shuō]:详细地解说,也叫"细谈". 果然,不仅意美.音美.而且形更美...perfect! 从现在开始,我们将一起走进 QML 的世界.在这里,你不仅能够体验到 QML 的魅力,感受到编程的快乐,还可以顺便学习一门语言,成

QML与指针

                 在QML刚刚出来不久,参加nokia的一个Qt Quick培训的时候,QML就给我的印象是:解释性脚本语言,没有内存操作的说法,更不用说指针了.当时也就是想想,也没有具体去实践探讨.由于现在在用Qt做产品,UI方面不得不跟QML打交道.QML做UI可以说是又好又快,大大节省了开发周期,但是由于QML处理逻辑的能力较差,所以,对于大量的逻辑处理还是需要Qt C++支持.这就涉及到C++与QML解释性语言之间数据交换.                 QML在和C+

初识数据仓库(Data Warehousing)-“掀起你的盖头来”

数据 初识数据仓库(Data Warehousing)-"掀起你的盖头来"我在这里就说说我初学的一些认识和看法,希望这些能够作为一些简单的介绍给那些初学的朋友们,更希望起到抛砖引玉的效果.    说到数据仓库,我们了解一下他产生的背景.自从DBASEⅢ(dBase是dos年代发展过来得数据库管理程序,先归属于Borland旗下)的兴起,数据库的应用进入了个人计算机,使得中小企业也纷纷进入商业性的数据库应用阶段.这时的数据库应用主要是进行数据的记录,我们称这类为OLTP(线上事务处理)数

Flash AS 3.0入门教程:初识AS 3.0

初识AS3.0 学习AS3.0已有一段时间了,想把自已对AS3的一些认识和大家分享一下.主要想说说AS3与AS2的不同之处,没有什么逻辑性,想到什么就写点什么,因此,它不适合AS高手们阅读.本文将力求用最直白的语言,尽量不用那些艰涩难懂的名词和术语. 一.在什么地方写代码 失望,以为要说点啥,原来是这么小儿科的问题.没办法,我说过了,本文不适合AS高手阅读的.为了更好地理解,我们还是用例子来说明.现在,就让我们一起来回顾一下,在AS2中我们都会把代码写在什么地方.我们在AS2中建一新文档,新建一

一起学WINS系列(一)初识、基础

<一起学WINS>系列是新出的一个系列专题,旨在用通俗的语言和精细的实例向大家介绍windows2003 服务之一,WINS服务.尽管现在server 2008比较火,且很受欢迎,但这些基础的东西还是不能忘的,希 望大家通过本系列的讨论和学习,对WINS有一些更多的认识和理解.不过,事先声明,本系列并非WINS的 帮助文件,不可能面面俱到,过于常规的知识点可能会很少提及,本文出发点是从实用角度来学习和理解 WINS. 此系列第一节:初识.基础. WINS是什么?从字面理解就是Windows I

初识Android的ReactiveX

初识Android的ReactiveX 开发一个复杂一点的Android应用都会用到网络请求,交互和动画.这些都意味着 要写很多的回调嵌套.这样的代码也被称为callback hell(回调地狱).这样的 代码不仅长,很难理解,而且也是错误高发的地方.ReactiveX 提供了一个清晰.准确处理异步问题和事件的方法. RxJava是一个ReactiveX在JVM上的实现,由NetFlix开发.这个库在Java开发者中 广为流传.这个教程中你会学到如何在Android应用开发中使用RxJava.这

qml 中如何显示视频第一帧作为预览,不播放

问题描述 qml 中如何显示视频第一帧作为预览,不播放 qml中通过video来播放视频有没有办法将视频的第一帧作为预览显示,或者用其他类型能解决这个问题也行

[译]安卓界面导航初识

本文讲的是[译]安卓界面导航初识, 原文地址:A Primer on Android navigation 原文作者:Liam Spradlin 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:horizon13th 校对者:SumiMakito, laiyun90 安卓界面导航初识 界面中任何引领用户跳转于页面之间的媒介 -- 这便是导航 当你的应用中的两个不同页面产生联系时,导航便由此而生.跳转链接(不论从哪跳到哪)便是页面间传递用户的媒介.创建导

javascript-JavaScript for Qt Quick(QML)

问题描述 JavaScript for Qt Quick(QML) JavaScript for Qt Quick(QML)可以用在什么地方 解决方案 http://baike.baidu.com/link?url=5ozD64y1gI_c99ruft1eNazuP_UmsQRJ4S3tcFghac8VseZHVPyLd17HfaC_YhQj1C82aFJl8WhKk0Kz08JjO_ 解决方案二: Javascript本身可以做为一种程序内嵌的脚本语言,比如用于QT的程序中,你也许不希望把功能