17.自定义点击带波纹特效按钮

2024-02-06 14:44

本文主要是介绍17.自定义点击带波纹特效按钮,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 说明:

此自定义按钮的大致效果为:当点击了按钮控件后,会在按钮中心生成一个类似波纹的特效并向四周扩散,同时按钮控件会有一个跳动的特效。
效果展示

波纹按钮

2. 示例代码:

功能实现方式:在WaveButton.qml中使用动态创建组件的方式,创建WaveEffect.qml自定义控件,有关波纹的代码均在WaveEffect.qml中进行设计。相关代码如下:
WaveButton.qml

import QtQuick 2.0
import QtQuick.Controls 2.0Rectangle {id:rootanchors.centerIn: parentwidth: 100height: 50radius: height/4color: Qt.rgba(0.9,0.9,0.9,1)signal clicked()function createWaveEffect(){var waveCom = Qt.createComponent("qrc:/WaveEffect.qml")if(waveCom.status === Component.Ready){var waveObj = waveCom.createObject(root,{"waveDiameter":root.width > root.height ? root.height : root.width,"waveBorderWidth":2,"waveBorderColor" : Qt.rgba(0.95,0.95,0.95,1)})waveObj.anim.start()}}MouseArea {anchors.fill: parentonClicked: {createWaveEffect()scaleAnim.start()root.clicked()}}Text {id: waveTextanchors.centerIn: parenttext: qsTr("click")color: Qt.rgba(0.3,0.3,0.3,1)font.pixelSize : parent.width > parent.height ? parent.height * 0.4 : parent.width * 0.4}SequentialAnimation {id: scaleAnimrunning: falseloops: 1NumberAnimation {target: rootproperty: "scale"to:0.95duration: 100}NumberAnimation {target: rootproperty: "scale"to:1.0duration: 100}}
}

WaveEffect.qml

import QtQuick 2.0
import QtQuick.Controls 2.0Item {id:rootwidth: 200height: 200anchors.centerIn: parentproperty alias anim : animproperty int waveDiameter : 0property int waveBorderWidth : 1property color waveBorderColor : Qt.rgba(0.8,0.8,0.8,1)Rectangle {id:waveanchors.centerIn: parentwidth:0height: widthradius: height / 2border.width: waveBorderWidthborder.color: waveBorderColorcolor: Qt.rgba(0,0,0,0)property alias anim : animproperty int duration : 800onOpacityChanged: {if(opacity === 0) {root.destroy()}}ParallelAnimation {id:animrunning: falseloops: 1NumberAnimation {target: waveproperties: "width,height"to:waveDiameterduration: duration}NumberAnimation {target: waveproperties: "radius"to:waveDiameterduration: duration}NumberAnimation {target: waveproperty: "opacity"to: 0duration: duration}}}
}

main.qml

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.0ApplicationWindow {visible: truewidth: 640height: 480title: qsTr("Hello World")WaveButton{anchors.centerIn: parentonClicked: {console.log("create waveEffect Button ....")}}
}

这篇关于17.自定义点击带波纹特效按钮的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/684636

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

『功能项目』战士的平A特效【35】

我们打开上一篇34武器的切换实例的项目, 本章要做的事情是在战士的每次按A键时在指定位置生成一个平A特效 首先将之前下载的技能拖拽至场景中 完全解压缩后重命名为AEffect 拖拽至预制体文件夹 进入主角动画的战士动画层级 双击第一次攻击 选择Animation 创建事件 创建的动画事件帧放在攻击动画挥剑指定处 命名为PerpetualAtt

第49课 Scratch入门篇:骇客任务背景特效

骇客任务背景特效 故事背景:   骇客帝国特色背景在黑色中慢慢滚动着! 程序原理:  1 、 角色的设计技巧  2 、克隆体的应用及特效的使用 开始编程   1、使用 黑色的背景: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d74c872f06b4d9fbc88aecee634b074.png#pic_center)   2