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

news2024/11/19 13:35:16

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所示。
在这里插入图片描述
实现步骤如下。
(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所示,其中虚线箭头标示出在程序运行中图形运动变化的轨迹。
在这里插入图片描述
实现步骤如下。
(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所示。
在这里插入图片描述
实现步骤如下。
(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所示,其中被鼠标点中的单词会以艺术字放大,而释放鼠标后又恢复原状。
在这里插入图片描述
实现步骤如下。
(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所示。
在这里插入图片描述

实现步骤如下。
(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所示,两只蜜蜂在花冠上翩翩起舞,同时整张照片沿竖直轴缓慢地转动。
在这里插入图片描述

实现步骤如下。
(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所示。
在这里插入图片描述

实现步骤如下。
(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所示。
在这里插入图片描述
实现步骤如下。
(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1035684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web前端float布局、flex布局

1、float布局 <!DOCTYPE html> <html> <head><title>Login Page</title><style>body {font-family: Arial, sans-serif;background-color: #f3f3f3;}.container {max-width: 400px;margin: 0 auto;padding: 40px;background-color: #fff;…

变压器(电抗器) 红外测温作业指导书

1 范围 本标准化作业指导书规定了变压器(电抗器)红外测温(一般检测)工作的准备工作、测温流程图、 现场操作方法、测温周期和标准、测温记录管理等要求。 本标准化作业指导书适用于指导变压器(电抗器)红外测温的一般性检测工作。 2 规范性引用文件 下列文件对于本文件的应用…

我们为什么要做一名系统管理员?

我们为秩序而战&#xff0c;而服务器大叔则需要你成为系统管理员。这是个很好的机会&#xff0c;因为你已经管理过你有的那些系统&#xff0c;你本可以不需酬劳地管理那些日逐一日地运行的系统。但还是有一些面试官&#xff0c;愿意拿一笔很不错的薪水来找一些人去管理他们的系…

最频繁被问到的SQL面试题

面试感叹失败的原因可能有很多&#xff0c;而做成的道路只有⼀条&#xff0c;那就是不断积累。纯手工的8291字的SQL面试题总结分享给初学者&#xff0c;俗称八股文&#xff0c;期待对新手有所帮助。 窗口函数题 窗口函数其实就是根据当前数据, 计算其在所在的组中的统计数据。…

计算机毕业设计 基于SpringBoot的4S店车辆管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Latex中使用package:authblk定义作者署名和单位

latex 一般情况下要自定义作者环境&#xff0c;因为自带的环境效果特别差&#xff0c; 所需的宏包一般使用 authblk。 文档说明网址&#xff1a; http://mirror.lzu.edu.cn/CTAN/macros/latex/contrib/preprint/authblk.pdf 非常简单明了&#xff0c;使用 \thanks 定义通讯作…

Python:Django框架的Hello wrold示例

Django是Python的目前很常用的web框架&#xff0c;遵循MVC设计模式。 以下介绍如何安装Django框架&#xff0c;并生成最简单的项目&#xff0c;输出Hello world。(开发工具VScode) 一、安装Django 在VScode终端控制台执行以下指令安装Django python install django 如果要查…

【树上莫队C++】Count on Tree II(欧拉序降维,树链剖分求最近共同祖先LCA)

》》》算法竞赛 /*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * * brief 一直在算法竞赛学习的路上* * copyright 2023.9* COPYRIGHT 原创技术笔记&#xff1a;转载…

【观察】数字化转型的“下半场”,华为加速行业智能化升级

过去几年数字化转型席卷全球&#xff0c;随着新技术的广泛应用&#xff0c;新的机会和价值正在不断被发现和创造。从某种程度上说&#xff0c;数字化转型不再是“可选项”&#xff0c;而变成了“必选项”。 目前&#xff0c;已经有超过170多个国家和地区制定了各自的数字化相关…

华为云云耀云服务器L实例评测:您值得信赖的云端伙伴

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

SAP PO运维(一):系统概览异常处理

打开SAP PIPO Netweaver Administration界面,系统概览下显示异常: 参考SAP note: 2577844 - AS Java Monitoring and Logging parametrization best practice service/protectedwebmethods = SDEFAULT -GetVersionInfo -GetAccessPointList -ListLogFiles -ReadLogFile -Para…

9.基于粤嵌gec6818开发板小游戏2048的算法实现

2048源码&#xff1a; 感兴趣的可以去了解一下2048优化算法&#xff1a; 基于蒙特卡罗树搜索的_2048_游戏优化算法_刘子正 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/mman.h> #incl…

modbusRTU【codesys】

先熟悉功能码&#xff1a; 1添加主站&#xff1a; 2添加从站&#xff1a; 3从站操作&#xff1a;【写】 注&#xff1a; 厂家屏蔽了 5和6 【不能写 单线圈和单寄存器】 映射好【站1Q】之后&#xff0c;就不需要再管其他设置。 只需要再程序里赋值【站1Q】的输出值就行 比如 站…

爬虫使用Selenium生成Cookie

在爬虫的世界中&#xff0c;有时候我们需要模拟登录来获取特定网站的数据&#xff0c;而使用Selenium登录并生成Cookie是一种常见且有效的方法。本文将为你介绍如何使用Selenium进行登录&#xff0c;并生成Cookie以便后续的爬取操作。让我们一起探索吧&#xff01; 一、Seleni…

【数据结构】七大排序算法详解

目录 ♫什么是排序 ♪排序的概念 ♪排序的稳定性 ♪排序的分类 ♪常见的排序算法 ♫直接插入排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫希尔排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫直接选择排序 ♪基本思想 ♪算法…

基于51单片机简易计算器仿真设计(proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

基于51单片机简易计算器仿真设计&#xff08;proteus仿真程序原理图PCB设计报告讲解视频&#xff09; 讲解视频1.1 功能要求1.2 仿真图&#xff1a;1.3 原理图&#xff1a;1.4 PCB&#xff1a;1.5 源程序&#xff1a;1.6设计报告&#xff1a;资料清单&&下载链接&#x…

C/C++统计满足条件的4位数个数 2023年5月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C统计满足条件的4位数个数 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C统计满足条件的4位数个数 2019年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定若干…

搭建安信可小安派Windows 开发环境

搭建小安派Windows 开发环境 Ai-Pi-Eyes 系列是安信可开源团队专门为Ai-M61-32S设计的开发板&#xff0c;支持WiFi6、BLE5.3。所搭载的Ai-M61-32S 模组具有丰富的外设接口&#xff0c;具体包括 DVP、MJPEG、Dispaly、AudioCodec、USB2.0、SDU、以太网 (EMAC)、SD/MMC(SDH)、SP…

硬件知识积累 网口接口 百兆,千兆,万兆 接口介绍与定义 (RJ45 --简单介绍)

1. 百兆网口 1.1百兆网的定义 百兆网的意思是是100Mb/S&#xff0c;中文叫做100兆位/秒。 1.2百兆网口的常用连接器 1.1.1 一般百兆网口的连接器一般是RJ45 下面是 实物图&#xff0c; 原理图&#xff0c;封装图。 1.3 百兆网口连接线的介绍 1.3.1 百兆需要使用的线的定义 百…