Qt5开发及实例V2.0-第二十章-Qt.QML动画特效

Qt5开发及实例V2.0-第二十章-Qt.QML动画特效

  • 第20章 QML动画特效
    • 20.1 QML动画元素
      • 20.1.1 PropertyAnimation元素
      • 20.1.2 其他动画元素
      • 20.1.3 Animator元素
    • 20.2 动画流UI界面
      • 20.2.1 状态和切换
    • 20.3 图像特效
      • 20.3.1 3D旋转
      • 20.3.2 色彩处理
    • 20.4 Qt 5.5(Qt Quick Extras 1.4)新增饼状菜单
  • 本章相关例程源码下载
    • 1.Qt5开发及实例_CH2001.rar 下载
    • 2.Qt5开发及实例_CH2002.rar 下载
    • 3.Qt5开发及实例_CH2003.rar 下载
    • 4.Qt5开发及实例_CH2004.rar 下载
    • 5.Qt5开发及实例_CH2005.rar 下载
    • 6.Qt5开发及实例_CH2006.rar 下载
    • 7.Qt5开发及实例_CH2007.rar 下载
    • 8.Qt5开发及实例_CH2008.rar 下载

第20章 QML动画特效

20.1 QML动画元素

20.1.1 PropertyAnimation元素

PropertyAnimation(属性动画元素)是用来为属性提供动画的最基本的动画元素,它直接继承自Animation元素,可以用来为real、int、color、rect、point、size和vector3d等属性设置动画。动画元素可以通过不同的方式来使用,取决于所需要的应用场景。一般的使用方式有如下几种:
 作为属性值的来源。可以立即为一个指定的属性使用动画。
 在信号处理器中创建。当接收到一个信号(如鼠标单击事件)时触发动画。
 作为独立动画元素。像一个普通QML对象一样地被创建,不需要绑定到任何特定的对象和属性。
 在属性值改变的行为中创建。当一个属性改变值的时候触发动画,这种动画又叫“行为动画”。

【例】(简单)(CH2001)编程演示动画元素多种不同的使用方式,运行效果如图20.1所示。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第1张图片
实现步骤如下。
(1)新建QML应用程序,项目名称为“PropertyAnimation”。
(2)定义4个矩形组件,代码分别。
(3)打开MainForm.ui.qml文件,修改代码。
(4)打开main.qml文件,修改代码如下:

import QtQuick 2.7
import QtQuick.Window 2.2
Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("PropertyAnimation")
    MainForm {
        anchors.fill: parent
        mouseArea.onClicked: {           
		   /* 将鼠标单击位置的x、y坐标值设为矩形Rect4的新坐标 */
            rect4.x = mouseArea.mouseX;
            rect4.y = mouseArea.mouseY;
        }
    }
}

20.1.2 其他动画元素

【例】(简单)(CH2002)编程演示其他各种动画元素的应用,运行效果如图20.2所示,其中虚线箭头标示出在程序运行中图形运动变化的轨迹。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第2张图片
实现步骤如下。
(1)新建QML应用程序,项目名称为“OtherAnimations”。
(2)右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加新文件…”项,新建CircleRect.qml文件,编写代码。
(3)打开MainForm.ui.qml文件,修改代码如下:

...
Rectangle {
	...
    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
    CircleRect {									//使用组件
        x:50; y:30
    }
}

20.1.3 Animator元素

【例】(难度一般)(CH2003)用Animator实现一个矩形从窗口左上角旋转着进入屏幕,运行效果如图20.3所示。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第3张图片
实现步骤如下。
(1)新建QML应用程序,项目名称为“Animator”。
(2)右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加新文件…”项,新建AnimatorRect.qml文件,编写代码。
(3)打开MainForm.ui.qml文件,修改代码如下:

...
Rectangle {
	...
    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
    AnimatorRect { }								//使用组件
}

20.2 动画流UI界面

20.2.1 状态和切换

【例】(难度中等)(CH2004)用状态切换机制实现文字的动态增强显示,运行效果如图20.4所示,其中被鼠标点中的单词会以艺术字放大,而释放鼠标后又恢复原状。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第4张图片
实现步骤如下。
(1)新建QML应用程序,项目名称为“StateTransition”。
(2)右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加新文件…”项,新建StateText.qml文件,编写代码。
(3)打开MainForm.ui.qml文件,修改代码如下:

...
Rectangle {
	...
    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
    Row {
        anchors.centerIn: parent
        spacing: 10
        StateText { text: "I" }			//使用组件,要自定义其文本属性
        StateText { text: "love" }
        StateText { text: "QML"  }
    }
}

【例】(难度中等)(CH2005)用组合动画实现照片的动态显示,运行效果如图20.5所示。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第5张图片

实现步骤如下。
(1)新建QML应用程序,项目名称为“ComplexAnimation”。
(2)在项目工程目录中建一个images文件夹,其中放入一张照片“zhou.jpg”。右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加现有文件…”项,从弹出对话框中选择该照片打开,将其加载到项目中。
(3)右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加新文件…”项,新建CAnimateObj.qml文件,编写代码。

(4)打开MainForm.ui.qml文件,修改代码如下:

...
Rectangle {
	...
    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
    CAnimateObj { }								//使用组件
}

20.3 图像特效

20.3.1 3D旋转

【例】(难度一般)(CH2006)实现GIF图片的立体旋转,运行效果如图20.6所示,两只蜜蜂在花冠上翩翩起舞,同时整张照片沿竖直轴缓慢地转动。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第6张图片

实现步骤如下。
(1)新建QML应用程序,项目名称为“Graph3DRotate”。
(2)在项目工程目录中建一个images文件夹,其中放入一张照片“bee.gif”。右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加现有文件…”项,从弹出对话框中选择该照片打开,将其加载到项目中。
(3)右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加新文件…”项,新建MyGraph.qml文件,编写代码。

(4)打开MainForm.ui.qml文件,修改代码如下:

...
Rectangle {
	...
    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
 
    MyGraph { }								//使用组件
}

20.3.2 色彩处理

【例】(难度一般)(CH2007)实现单击图片使其亮度变暗,且对比度增强,运行效果如图20.8所示。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第7张图片

实现步骤如下。
(1)新建QML应用程序,项目名称为“GraphEffects”。
(2)在项目工程目录中建一个images文件夹,其中放入一张照片“insect.gif”。右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加现有文件…”项,从弹出对话框中选择该照片打开,将其加载到项目中。
(3)右击项目视图“资源”→“qml.qrc”下的“/”节点,选择“添加新文件…”项,新建MyGraph.qml文件,编写代码。

(4)打开MainForm.ui.qml文件,修改代码如下:

...
Rectangle {
	...
    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
    MyGraph { }								//使用组件
}

20.4 Qt 5.5(Qt Quick Extras 1.4)新增饼状菜单

【例】(难度一般)(CH2008)用PieMenu实现饼状菜单,在界面文本框上右击鼠标出现拱形的菜单,选择相应菜单项,应用程序输出窗口显示对应的动作,如图20.9所示。
Qt5开发及实例V2.0-第二十章-Qt.QML动画特效_第8张图片
实现步骤如下。
(1)新建QML应用程序,项目名称为“PieMenu”。
(2)打开MainForm.ui.qml文件,修改代码。
(3)打开main.qml文件,修改代码。



本章相关例程源码下载

1.Qt5开发及实例_CH2001.rar 下载

Qt5开发及实例_CH2001.rar

2.Qt5开发及实例_CH2002.rar 下载

Qt5开发及实例_CH2002.rar

3.Qt5开发及实例_CH2003.rar 下载

Qt5开发及实例_CH2003.rar

4.Qt5开发及实例_CH2004.rar 下载

Qt5开发及实例_CH2004.rar

5.Qt5开发及实例_CH2005.rar 下载

Qt5开发及实例_CH2005.rar

6.Qt5开发及实例_CH2006.rar 下载

Qt5开发及实例_CH2006.rar

7.Qt5开发及实例_CH2007.rar 下载

Qt5开发及实例_CH2007.rar

8.Qt5开发及实例_CH2008.rar 下载

Qt5开发及实例_CH2008.rar

你可能感兴趣的:(QT5,ARM,MCU,Linux,qt,开发语言,数据库,c++,嵌入式硬件)