QML是Qt推出的Qt Quick技术的一部分,是一种新增的简便易学的语言。QML是一种陈述性语言,用来描述一个程序的用户界面:无论是什么样子,以及它如何表现。在QML,一个用户界面被指定为具有属性的对象树。 这使得Qt更加便于很少或没有编程经验的人使用。
QML实际上是Qt Quick (Qt4.7.0中的新特性)核心组件之一:Qt Quick是一组旨在帮助开发者创建在移动电话,媒体播放器,机顶盒和其他便携设备上使用越来越多的直观、现代、流畅UI的工具集合。
QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等,同时又能跟Qt写的C++代码进行方便的交互,使用起来非常方便。
QML模块为用QML语言开发应用程序和库提供了一个框架,它定义、实现语言和引擎,并提供了让开发者使用自定义类型、JavaScript与C++整合的QML代码来扩展QML语言的API,QML模块提供了QML API和C++ API。
    Qt的QML模块提供QML应用程序的语言和基础,Qt Quick模块提供了许多可视化组件,支持模型-视图,动画框架,多用于构建用户界面。
 
包括模块类的定义,可以使用以下语句:
#include
 
在QML中可通过导入QtQML让QML类型可用,可以使用以下语句:
import QtQml 2.0
 
要链接模块,可以使用以下语句(添加至qmake .pro中):
QT += qml
 
简单的介绍就到这里,如果要了解更多,请参考专业的Qt Assistant。。。
 
举例:
.qml内容文件如下:
 
import QtQuick 2.0
import QtQuick.Window 2.1
 
Window {
    width: 400
    height: 200
    color: "green"
 
    Column {
        anchors.centerIn: parent
        spacing: 10
 
        Text {
            text: "Hello World"
            font.family: "Helvetica"
    font.pointSize: 20
            color: "white"
}
 
Text {
    color: Qt.rgba(0, 0, 255, 100)
    font.pointSize: 16
    text: Qt.md5("hello, world")
        }
    }
}
 
Window:窗体
Text:既可以显示普通文本和富的文本项。例如,可以定义特定字体、大小、颜色的文本。
Column :子项按列显示
width、height、color、text等就不过多说明了,分别代表:宽、高、颜色、文本。  
anchors.centerIn: parent表示位于窗体中央
spacing: 10表示各个子项的间距为10
Qt.md5("hello, world")使用md5对"hello,world"加密
 
运行:
  • 方式一:右键.qml文件->打开方式(选择qml.exe或qmlviewer.exe)即可。
  • 方式二:使用QQuickView模块。
在main方法中添加以下代码:
QQmlEngine *engine = new QQmlEngine();
QQmlComponent *component = new QQmlComponent(engine);
component->loadUrl(QUrl("qrc:/qml/HelloWorld.qml")); //QUrl::fromLocalFile("HelloWorld.qml")
if(!component->isReady())
{
        qWarning("%s", qPrintable(component->errorString()));
 
        return -1;
}
QObject *object = component->create();
QQuickWindow *window = (qobject_cast)(object);
window->show();

QML入门教程的更多相关文章

  1. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  2. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  3. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  4. Content Security Policy 入门教程

    阮一峰文章:Content Security Policy 入门教程

  5. gulp详细入门教程

    本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...

  6. UE4新手引导入门教程

    请大家去这个地址下载:file:///D:/UE4%20Doc/虚幻4新手引导入门教程.pdf

  7. ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  8. webpack入门教程之初识loader(二)

    上一节我们学习了webpack的安装和编译,这一节我们来一起学习webpack的加载器和配置文件. 要想让网页看起来绚丽多彩,那么css就是必不可少的一份子.如果想要在应用中增加一个css文件,那么w ...

  9. 转载:TypeScript 简介与《TypeScript 中文入门教程》

    简介 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构 ...

随机推荐

  1. SPOJ Pouring Water

    传送门 POUR1 - Pouring water #gcd #recursion Given two vessels, one of which can accommodate a litres o ...

  2. CATransform3D

    本章介绍图层的几何组成部分,及他们之间的相互关,同时介绍如何变换矩阵可以产生复杂的视觉效果. 1.1 图层的坐标系 图层的坐标系在不同平台上面具有差异性.在iOS系统中,默认的坐标系统原点在图层的中心 ...

  3. WEB开发中的页面跳转方法总结

    PHP header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向: $url = & ...

  4. 验证码点击刷新 this.src=this.src+'?'+Math.random()

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Jsonp简单认识(后端使用的是asp.net mvc)

    一.Jsonp简介:由于浏览器基于安全有同源策略(同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性)机制,所以前端无法使用Ajax来获取来获取其他域名下返回的数据,而Jsonp可 ...

  6. linux 多线程 LinuxThreads(转)

    Linux 线程实现机制分析 http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 上面文章分析的非常透彻 按照教科书上的定义,进程是 ...

  7. SOA面向服务架构简述

    在上篇中我们简单谈了下架构设计中服务层的简单理解,在这里我们将继续服务层的架构,在本节我们将重点在于分布式服务.在分布式系统中表现层和业务逻辑层 并不处于同一物理部署,所以我们必须存在分布式服务,以契 ...

  8. 使用sql server2005全文检索

    SQL Server 2005的全文检索采用类似Lucece的技术, 为文本检索做index, 尤其适合大文本字段的检索, 性能比Lucece差一些. 著名的stackoverflow网站也使用过SQ ...

  9. js实现剪切、复制、粘贴——clipBoard.js

    摘要: 最近项目上要实现一个点击按钮复制链接的功能,刚开始查找了一些资料,找了几款插件,ZeroClipboard是通过flash实现的复制功能,随着越来越多的提议废除flash,于是就想能不能通过j ...

  10. Android之开启手机系统自带铃声

    /** * 开启手机系统自带铃声 */ private void startAlarm() { mMediaPlayer = MediaPlayer.create(this, getSystemDef ...