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.hqwc.cn/news/691704.html

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

相关文章

重生奇迹mu战士攻略有哪些

1、生命之光:PK前起手式,增加血上限。 2、雷霆裂闪:眩晕住对手,战士PK战士第一技能,雷霆裂闪是否使用好关系到胜负。 3、霹雳回旋斩:雷霆裂闪后可以选择用霹雳回旋斩跑出一定范围(因为对手下一招没出意外…

法语语式与时态总结,柯桥零基础学法语

常用语式 法语中的常用语式分为:直陈式、条件式、虚拟式、命令式、不定式与分词式。 直陈式(lindicatif)初学法语时首先就要学直陈式,也是最常用的语式,表示确实发生的动作。 条件式(le conditionnel&am…

信号线电路串联电阻

简介 两芯片端串联一个电阻,在靠近发送端或接收端。 一般串联的是0Ω, 22Ω, 33Ω的电阻,也可能更大。 目的 1.解决信号反射问题,吸收反射。 问题如下: pcb单端阻抗过大,而接收端是cmos输入,使得接收端…

Leetcode39.组合总和

文章目录 题目描述解题思路重复子集剪枝 代码 题目 参考题解 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返…

RS3236-3.3YUTDN4功能和参数介绍及PDF资料

RS3236-3.3YUTDN4功能和参数介绍及PDF资料-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 品牌: RUNIC(润石) 封装: XDFN-4-EP(1x1) 描述: 带过温保护 输出类型: 固定 最大输入电压: 7.5V 输出电压: 3.3V 最大输出电流: 500mA RS3236-3.3YUTDN4 是一款低压差线性稳压器&#x…

【Python超详细的学习笔记】Python超详细的学习笔记,涉及多个领域,是个很不错的笔记

获取笔记链接 Python超详细的学习笔记 一,逆向加密模块 1,Python中运行JS代码 1.1 解决中文乱码或者报错问题 import subprocess from functools import partial subprocess.Popen partial(subprocess.Popen, encodingutf-8) import execjs1.2 常用…

【北京迅为】《iTOP-3588从零搭建ubuntu环境手册》-第8章 安装编译所需要的依赖包

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

动态规划----股票买卖问题(详解)

目录 一.买卖股票的最佳时机: 二.买卖股票的最佳时机含冷冻期: 三.买卖股票的最佳时期含⼿续费: 四.买卖股票的最佳时机III: 五.买卖股票的最佳时机IV: 买卖股票的最佳时机问题介绍:动态规划买卖股票的最佳时机是一个经典的…

LabVIEW天然气压缩因子软件设计

LabVIEW天然气压缩因子软件设计 项目背景 天然气作为一种重要的能源,其压缩因子的准确计算对于流量的计量和输送过程的优化具有关键意义。传统的计算方法不仅步骤繁琐,而且难以满足现场快速响应的需求。因此,开发一款既能保证计算精度又便于…

该从哪些方面提升系统的吞吐量?

更多大厂面试内容可见 -> http://11come.cn 该从哪些方面提升系统的吞吐量? 我们平时自己做的项目一般没有用户量,都是练手项目,所以并不会在吞吐量上做出很多的优化,但是这样的话,又会导致项目和其他人相比并没有…

基于单片机的空气质量检测系统设计(51+4G版)-设计说明书

设计摘要: 本设计是基于单片机的空气质量检测系统设计涉及以下主要功能,旨在监测甲烷和一氧化碳的浓度,并在浓度过高时采取相应措施,以确保室内空气质量的安全。该系统使用传感器对甲烷和一氧化碳的浓度进行检测。传感器将收集到…

day09-常用API异常

1.时间日期类 1.1 Date类(应用) 计算机中时间原点 1970年1月1日 00:00:00 时间换算单位 1秒 1000毫秒 Date类概述 Date 代表了一个特定的时间,精确到毫秒 Date类构造方法 方法名说明public Date()分配一个 Date对象,并初始化…