pyqt颜色变换动画效果

pyqt颜色变换动画效果

  • QPropertyAnimation介绍
  • 颜色变换效果
  • 代码

QPropertyAnimation介绍

QPropertyAnimation 是 PyQt中的一个类,它用于对 Qt 对象的属性进行动画处理。通过使用 QPropertyAnimation,你可以平滑地改变一个对象的属性值,例如窗口的位置、大小、颜色等。

颜色变换效果

在这里插入图片描述

代码

from PyQt5.QtWidgets import (QWidget, QApplication, QPushButton,QLabel, QHBoxLayout, QSizePolicy)
from PyQt5.QtGui import QColor
from PyQt5.QtCore import QPropertyAnimation, pyqtProperty  # 这里添加了pyqtProperty的导入
import sys# 自定义QLabel类,用于支持通过属性系统改变文本颜色
class MyLabel(QLabel):# 初始化方法def __init__(self, text):super().__init__(text)# 私有方法,用于设置颜色def _set_color(self, col):# 获取当前的调色板palette = self.palette()# 设置前景色(即文本颜色)palette.setColor(self.foregroundRole(), col)# 应用新的调色板self.setPalette(palette)# 使用pyqtProperty装饰器定义color属性,使其可通过QPropertyAnimation访问color = pyqtProperty(QColor, fset=_set_color)# 主窗口类
class Example(QWidget):def __init__(self):super().__init__()# 初始化UIself.initUI()def initUI(self):# 创建一个水平布局hbox = QHBoxLayout(self)# 创建一个按钮,并添加到布局中self.button = QPushButton("Start", self)self.button.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)hbox.addWidget(self.button)# 在布局中添加一些间距hbox.addSpacing(40)# 创建一个自定义标签,并设置字体大小和文本,然后添加到布局中self.label = MyLabel("颜色")font = self.label.font()font.setPointSize(35)self.label.setFont(font)hbox.addWidget(self.label)# 创建一个QPropertyAnimation实例,用于动画化MyLabel的color属性self.anim = QPropertyAnimation(self.label, b"color")# 设置动画的持续时间self.anim.setDuration(1000)# 设置动画的循环次数self.anim.setLoopCount(6)# 设置动画的起始值(颜色)self.anim.setStartValue(QColor(0, 0, 0))# 设置动画的结束值(颜色)self.anim.setEndValue(QColor(255, 0, 0))# 连接按钮的clicked信号到动画的start槽self.button.clicked.connect(self.anim.start)# 设置窗口的几何位置和大小self.setGeometry(300, 300, 380, 250)# 设置窗口标题self.setWindowTitle('Color anim')# 显示窗口self.show()if __name__ == "__main__":# 创建QApplication实例app = QApplication([])# 创建Example窗口实例ex = Example()# 显示窗口ex.show()# 运行应用程序sys.exit(app.exec_())

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

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

相关文章

Python-VBA函数之旅-str函数

目录 一、str函数的常见应用场景 二、str函数使用注意事项 三、如何用好str函数? 1、str函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页: https://myelsa1024.blog.csdn.net/ 一、str函数的常…

docker安装的es配置密码认证

docker安装的es配置密码认证 前言 ​ 今天客户提出来,说es的端口是暴露出来的,可以直接取出来数据,按照要求,必须对9200进行密码配置。准备好几种方案,nginx的反向代理加上认证配置(但是是一个单体的服务…

Android WebSocket 使用指南:详细步骤与实践

WebSocket 是一种在单个长连接上进行全双工通信的协议。相比于传统的HTTP请求,WebSocket 可以减少通信的延迟,适用于需要实时数据传输的场景,如聊天应用、游戏和实时数据更新服务。在Android开发中,WebSocket的使用可以借助OkHttp…

力扣经典150题第五十九题: 随机链表的复制

目录 1. 题目分析2. 解题思路3. Java代码实现4. 测试示例5. 总结 标题:使用Java实现随机链表的深拷贝 随机链表的深拷贝是一道经典的链表问题,需要在复制链表的同时处理随机指针。在本文中,我们将使用Java来解决LeetCode上的第五十九题&#…

iphone进入恢复模式怎么退出?分享2种退出办法!

iPhone手机莫名其妙的进入到了恢复模式,或者是某些原因需要手机进入恢复模式,但是之后我们不知道如何退出恢复模式怎么办? 通常iPhone进入恢复模式的常见原因主要是软件问题、系统升级失败、误操作问题等导致。那iphone进入恢复模式怎么退出&…

异常检测的学习和实战

1.应用: 1.在工业上的应用 当检测设备是否处于异常工作状态时,可以由上图分析得到:那些零散的点对应的数据是异常数据。因为设备大多数时候都是处于正常工作状态的,所以数据点应该比较密集地集中在一个范围内,而那些明…

【数据结构练习题】Map与Set——1.只出过一次的数字2.复制带随机指针的链表3.宝石与石头4.坏键盘打字

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ ♥♥♥♥♥【数据结构练习题】堆——top-k问题♥♥♥♥♥ 文章目录 1.只出过一次的数字1.1问题描述1.2思路分析1.3绘图分析1.4代码实现2.复制带随机指针的链表2.1问题描述2.2思路分析2.3绘图分析2.4代…

远程点击没反应

目录 todesk远程登录后点击没反应 解决方法: 方法1 快捷键: 方法2 界面点击Ctrl Alt Delete todesk,向日葵远程登录后点击没反应 todesk远程登录后点击没反应 解决方法: 方法1 快捷键: Ctrl Alt Delete 方法…

c语言之打开一个文件

c语言要打开一个文件,需要用的方法是fopen fopen(文件名,操作模式) 其中文件名一般为要带上绝对路径,如果程序文件与文件是一个目录下,就可以只写文件名和后缀就可以了。 一般会定义一个fFILE类型指针变量来指向被打开的文件&a…

《解锁数字化劳动合同签约:构建高效的电子合同签约平台》

随着数字化转型的推进,传统的纸质劳动合同签约方式已经无法满足现代企业对于效率和便捷性的需求。电子劳动合同签约平台应运而生,为企业和员工提供了一种更加高效、便捷的合同签署方式。本文将介绍电子劳动合同签约平台的业务架构,探讨其如何…

一次遍历,LeetCode 2391. 收集垃圾的最少总时间

一、题目 1、题目描述 给你一个下标从 0 开始的字符串数组 garbage ,其中 garbage[i] 表示第 i 个房子的垃圾集合。garbage[i] 只包含字符 M ,P 和 G ,但可能包含多个相同字符,每个字符分别表示一单位的金属、纸和玻璃。垃圾车收…

ORA-28575: unable to open RPC connection to external procedure agent

环境: Oracle 11.2.0.4x64 RAC AIX6.1版本SDE for aix oracle11g版本10.0 x64 sde配置情况如下: 检查oracle和grid用户下的$ORACLE_HOME/hs/admin/extproc.ora文件均包含有如下: SET EXTPROC_DLLSANY 两个节点sde下的user_libraries都正常…

如何利用ChatGPT辅助下处理:ENVI、GEE、Python等遥感数据

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力。本课程重点介绍ChatGPT在遥感中的应用,人工智…

SLAM技术详解及Python实现

引言 SLAM(Simultaneous Localization and Mapping,同时定位与建图)是近年来备受关注的一项技术,广泛应用于机器人、自动驾驶、增强现实等领域。SLAM旨在解决机器人在未知环境中同时进行定位和建图的问题,为实现智能导…

CentOS 8.5 安装配置 squid 6.9 代理服务器 Windows10 系统设置http代理 详细教程

1 下载地址: 官网下载 2 通过xftp等方式上传到服务器 #查看环境 [rootlocalhost ~]# cat /etc/redhat-release CentOS Stream release 8 [rootlocalhost ~]# uname -a Linux localhost.localdomain 4.18.0-552.el8.x86_64 #1 SMP Sun Apr 7 19:39:51 UTC 2024 x86_64 x86_6…

自动驾驶中的神经辐射场:综述

24年4月清华大学论文“Neural Radiance Field in Autonomous Driving: A Survey”。 神经辐射场(NeRF)由于其固有的优势,特别是其隐式表示和新视图合成能力,引起了学术界和工业界的广泛关注。 随着深度学习的快速发展&#xff0c…

YOLOv8项目使用说明

1. 下载群公告中的百度云连接,得到一个压缩文件 2. 解压并使用相关软件(如pycharm、VSCode等)打开 3. 选择一个合适的模型yaml文件,及数据集yaml文件进行训练 4. 配置并填入数据集yaml文件 5. 运行即可

JAVA 标准接口返回与i18n国际化配置

不喜欢废话直接上代码 标准通用返回 package com.luojie.common;import com.luojie.common.inter.ResponseCommon; import lombok.Data;Data public class ResponseCommonImpl implements ResponseCommon {int code;String msg;Object entity; }package com.luojie.common;im…

[muduo网络库]——muduo库三大核心组件之EventLoop类(剖析muduo网络库核心部分、设计思想)

接着上一节[muduo网络库]——muduo库三大核心组件之 Poller/EpollPoller类(剖析muduo网络库核心部分、设计思想),我们来剖析muduo库中最后一类核心组件,EventLoop类。 先回顾一下三大核心组件之间的关系。 接着我们进入正题。 Ev…

C++算法之区间合并

本文介绍区间合并相关知识点 目录 文章目录 前言 区间合并 概述 做法 n个区间合并 校门外的树 总结 前言 本文介绍区间合并这一基础算法,介绍常规的做法以及模板 区间合并 概述 通常区间合并是给定数个区间,想要将有交集的区间合并成一个区间 如下要…