QML 学习(三)

摘要:
y:30个锚点。horizontalCenter:page.horizontalCentrefont.pointSize:24;font.bold:trueMouseAra{id:mouseAre;锚点。fill:parent}状态:状态{name:“down”;当:mouseRea.pressed==truePropertyChanges{target:helloText;y:160;旋转:180;颜色:“red”}}转换:转换{从:“”;到:“down“;可逆:trueParallelAnimation{NumberAnimation}属性:“y,旋转”;持续时间:500;缓解。类型:easing.InOutQua d}ColorAnimation{持续时间:500}}}}网格{id:colorPickerx:4;锚点。底部:页面底部;锚点底部边距:4行:2;列:3;间距:3单元格{cellColor:“红色”;单击:helloText.coolor=cellColor}单元格{细胞颜色:“绿色”;单击的:hello文本.coolor=cellColour}单元格{cellColor:“蓝色”;点击的:hello文本.cool=cellColor}单元{Cell颜色:“黄色”;单击蓝色“ ; 点击:你好短信。color=cellColor}单元格{cellColor:“black”;onClicked:hello Text.color=Cell color}}}}。qml,还有一个单元格qml也是必需的,这与教程中的完全相同。让我们看看添加到教程代码中的内容。此状态的名称为“down”,然后“when”指定何时触发此状态。过渡用于增加动画效果。您还可以看到过渡是复数的,这意味着您可以添加多个动画进程。“from”和“to”的参数名来自State中的“name”属性。NumberAnimation用于qreal类型的属性更改,ColorAnimation则用于颜色更改。有关更多动画,请在QML文档中找到“动画和过渡”。好了,这三个教程到此结束。有关更多资源,请访问DeclarativeUIUsingQML。

经过前面两个教程,文字也能显示,也能处理鼠标事件了,来点动画吧。

QML 学习(三)第1张

这个教程实现了当鼠标按住的时候,Hello,World从顶部到底部的一个旋转过程,并带有颜色渐变的效果。

完整的源代码main.qml

import Qt 4.7
Rectangle {
id: page
500; height: 200
color:
"lightgray"
Text {
id: helloText
text:
"Hello World!"
y:
30
anchors.horizontalCenter: page.horizontalCenter
font.pointSize:
24; font.bold: true
MouseArea { id: mouseArea; anchors.fill: parent }
states: State {
name:
"down"; when: mouseArea.pressed ==true
PropertyChanges { target: helloText; y:
160; rotation: 180; color: "red"}
}
transitions: Transition {
from:
""; to: "down"; reversible: true
ParallelAnimation {
NumberAnimation { properties:
"y,rotation"; duration: 500; easing.type: Easing.InOutQuad }
ColorAnimation { duration:
500}
}
}
}
Grid {
id: colorPicker
x:
4; anchors.bottom: page.bottom; anchors.bottomMargin: 4
rows:
2; columns: 3; spacing: 3
Cell { cellColor:
"red"; onClicked: helloText.color =cellColor }
Cell { cellColor:
"green"; onClicked: helloText.color =cellColor }
Cell { cellColor:
"blue"; onClicked: helloText.color =cellColor }
Cell { cellColor:
"yellow"; onClicked: helloText.color =cellColor }
Cell { cellColor:
"steelblue"; onClicked: helloText.color =cellColor }
Cell { cellColor:
"black"; onClicked: helloText.color =cellColor }
}
}
除了这个main.qml之外,还有一个Cell.qml也是需要的,和教程(2)中的完全一样。下面来看一看比起教程(2)的代码增加出来的内容。
Text{
...
states: State {
name:
"down"; when: mouseArea.pressed ==true
PropertyChanges { target: helloText; y:
160; rotation: 180; color: "red"}
}
transitions: Transition {
from:
""; to: "down"; reversible: true
ParallelAnimation {
NumberAnimation { properties:
"y,rotation"; duration: 500; easing.type: Easing.InOutQuad }
ColorAnimation { duration:
500}
}
}
...
}
states内嵌于Text之中,可以为Text元素添加多个状态,现在的这个例子只增加了一个状态。该状态的名为为”down”,然后由“when”指 定了什么时候触发这个状态。PropertyChanges则指定了哪个元素的哪些属性会发生什么样的变化。例子中PropertyChanges利用 “target”指定了id为”helloText”的元素会发生变化,包括其y,rotation,color等属性。
transitions 是用于增加动画效果的(如果把transitions这一段代码删去,Hello,World的文字也会发生变化,但是看不到中间动画渐变效果)。同样可 以看到transitions是复数形式,意味着可以添加多个动画过程。“from”和”to”指明了当前的动画作用于哪两个状态变化之间。 “from”和”to”的参数名来自于State中的”name”属性。
ParalleAnimation则指定了有多个 有多个动画并行发生。NumberAnimation用于qreal类型的属性变化,ColorAnimation则用于颜色变化。更多 Animation请在QML文档中查找”Animation and Transitions”。
好了,三篇教程到此结 束。更多资源请访问Declarative UI Using QML。


文章转自:http://www.cuteqt.com/blog/?p=1641

免责声明:文章转载自《QML 学习(三)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SVN更新操作提示需要清理操作,清理操作提示乱码,更新SVN失败人力资本层-考勤评估案例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

qt quick中qml编程语言

Qt QML 入门 — 使用C++定义QML类型 发表于2013 年 3 月 11 日 注册C++类 注册可实例化的类型 注册不实例化的QML类型 附带属性 注册C++类 注册可实例化的类型 如果一个C++类继承自QObject,如果需要在QML中使用创建对象,则需要注册为可实例化的QML类型。 使用qmlRegisterType()注册可...

浅析Android动画(二),属性动画高级实例探究

转载请注明出处!http://www.cnblogs.com/wondertwo/p/5312482.html ObjectAnimator实现属性动画 为了写好Android动画这几篇博客,在动笔之前我是下过很大决心的,我对自己的要求是尽量把一个小知识点写清楚写明白,说白了就是相对于大而全的长篇大论,我更倾向于去写小而美的博客!为了保证在高产的同时能坚...

SVG SMIL animation动画详解

一、SVG SMIL animation概览 1. SMIL是什么? SMIL不是指「水蜜梨」,而是Synchronized Multimedia Integration Language(同步多媒体集成语言)的首字母缩写简称,是有标准的。本文所要介绍的SVG动画就是基于这种语言。 SMIL允许你做下面这些事情: 动画元素的数值属性(X, Y, …) 动...

Qt Creator介绍

简介 Qt Creator是使用Qt开发的IDE。Qt支持Windows、Linux/Unix、Mac OS X、Android、BlackBerry、QNX等多种平台,Qt Creator为不同平台提供了统一的开发环境。 Qt Creator集成了Qt Designer、Qt Assistant、Help等工具。因此,在开发过程中可以很快的通过Desi...

QML(一)HelloWorld

一、Qt Widgets、QML、Qt Quick 的区别 参考: 1. Qt Widgets、QML、Qt Quick 的区别 2. Qt Widgets 和 Qt Quick / QML 二、基础教程 参考: 1. 使用QML进行界面开发 2. QML 三言两语 三、HelloWorld 使用Qt Creator直接新建工程,有如下选项(我的没有Can...

css3动画animation

css3动画animaton css样式如下: .div01 { width:200px; height:200px; background:rebeccapurple; color:#fff; position:relative; /*animation: *animation-name: 规...