文档章节

Qml介绍

Amamatthew
 Amamatthew
发布于 2014/06/07 10:18
字数 609
阅读 49
收藏 0
点赞 0
评论 0

QML是一种描诉性的脚本语言,文件格式以.qml结尾。语法格式非常像CSS,但又支持javacript形式的编程控制。

我个人认为它结合了QtDesigner UI和QtScript的有点。

QtDesigner可以设计出.ui界面文件,但是不支持和Qt原生C++代码的交互。QtScript可以和Qt原生代码进行交互,但是有一个缺点,如果要在脚本中创建一个继承于QObject的图形对象非常不方便,只能在Qt代码中创建图形对象,然后从QtScript中进行访问。

而QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等,同时又能跟Qt写的C++代码进行方便的交互,使用起来非常方便。本文不介绍如何在Qt C++中使用QML,而是把重点放在QML的语法上。

import QtQuick 2.2 
 Rectangle {
     id: page
     width: 500; height: 200
     color: "lightgray" 

     Text {
         id: helloText
         text: "Hello world!"
         font.pointSize: 24; font.bold: true
         y: 30; anchors.horizontalCenter: page.horizontalCenter
     }
 }

第1行是Qt QML的统一用法,指明当前QML会使用QtQuick 2.2里面已经定义好的类型,比如,第2行用到的Rectangle和第6行的Text。第2行开始至结束定义了一个矩形的图形区域对象。第3行则申明了该矩形区域对象的id为”page”可以被其它对象识别并通过该id访问其成员属性。

另外几个属性width/height/color则很好理解,语法跟CSS类似,可以写在一行中用分号”;”隔开。
第6行至第12行则是一个文本对象,看它代码的嵌套结构可以知道它是内嵌于Rectangle的。Text的属性除了anchors其它几个都能顾名思义。anchors描述的是当前文本对象的位置和其它对象的相对关系,这里看到其水平中心位置在“page“对象的水平中心位置。如果相对anchors了解更多,请参考锚的解释。以上就是Hello,World的全部代码。

在上面的代码中我们用到了Rectangle和Text,那么我还有哪些对象以及这些对象有哪些属性呢。请访问QML-Item类,Item类是QML最基础的类,通过查看它的继承类以及这些继承类可用的属性,你可以添加更多你感兴趣的内容。


本文转载自:http://www.cnblogs.com/hicjiajia/archive/2010/12/05/1896838.html

共有 人打赏支持
Amamatthew
粉丝 68
博文 1050
码字总数 76443
作品 0
厦门
后端工程师
用QML语言开发MeeGo应用程序在线开发教程 – MeeGo开发中文网

用QML语言开发MeeGo应用程序在线开发教程 – MeeGo开发中文网 用QML语言开发MeeGo应用程序在线教程 – MeeGo开发中文网 Qt Declarative UI 传得沸沸扬扬,却很少有中文资料介绍这是一个什么样...

look
2011/02/22
0
0
Qt Quick里的图形效果——颜色(Color)

Qt Quick提供了通过改变一个 Item 的颜色来产生各种各样效果的元素。有下面几种: BrightnessContrast,调整亮度和对比度 ColorOverlay,在源 Item 上覆盖一层颜色 Colorize,设置源 Item 的...

foruok
2015/01/19
0
0
将QML与Qt Widgets相结合

简述 在使用 Qt Widgets 时,经常要实现一些比较炫酷的效果(例如:滑动、翻页),这时选择 QML 会显得非常简单。 那么,问题来了: 能不能将 QML 和 Qt Widgets 结合在一起使用? 如果能,都...

潘志闻
2017/08/10
0
0
QML入门教程之 Hello world

QML是什么? QML是一种描述性的脚本语言,文件格式以.qml结尾。语法格式非常像CSS(参考后文具体例子),但又支持javacript形式的编程控制。 它结合了QtDesigner UI和QtScript的优点。QtDesig...

红薯
2011/06/02
707
0
用 QML 开发 MeeGo 应用程序

什么是QML? QML是一种描述应用程序UI的声明式语言,包括应用程序的外观(菜单、按钮、布局等)以及行为(点击事件)的描述。在QML中,UI界面被描述成一种树状的带属性对象的结构(类似于DOM...

小编辑
2010/11/25
1K
1
Qt使用教程之使用Qt Quick UI表单(一)

<Qt Enterprise最新版下载> 本教程介绍如何使用ui.qml文件开发一个应用程序,使应用程序逻辑从UI中分离。该教程使用Qt Quick Designer实现一个简化版的UI表单示例,它为一个客户数据库提供接...

Miss_Hello_World
2016/02/05
107
0
Qt for iOS,Qt 与Objective C混合编程

因为我写了一系列Qt的博文以及一本书《Qt on Android核心编程》,最近有好几个使用Qt的朋友问起 Qt for iOS 的事情,因为我在这方面的经验特别少,写不出系统的文章来,非常抱歉,不能给出令...

foruok
2015/02/02
0
0
Qt Quick调试之显示代码行号

QML 文档可以使用 console 对象来打印日志信息,可默认是无法输出行号的。帮助文档中说需要设置 QMLCONSOLEEXTENDED 环境变量即可,测试了一下不管用。后来找到 qt.gitorious.org 上的一个文...

foruok
2014/10/31
0
0
Qt Creator 2.4.0 beta 发布

Qt Creator 2.4 beta 发布。该版本包括了许多大大小小的改进,以及一些新功能。 根据Qt博客的Eike Ziller介绍,最诱人的功能/改进无疑是新增的“同步声明及定义”功能。使用该功能,当要改变...

小卒过河
2011/10/21
1K
2
Qt使用教程之创建Qt Quick应用程序(一)

<Qt Enterprise最新版下载> 本教程主要使用内置的QML类型并简单介绍Qt Quick的基本概念。本文主要为大家介绍如何使用Qt Creator实现Qt Quick的状态和转换。我们创建一个应用程序,该应用程序...

Miss_Hello_World
2016/01/15
144
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
42分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
53分钟前
3
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
58分钟前
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
572
7
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
8
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
17
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
2
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部