概述
先自定义一个控件,增加一个color方法:
class MyBtn(QPushButton):
def __init__(self, text):
super().__init__(text)
def _set_color(self, rgbCol):
self.setStyleSheet(f"background-color: " + rgbCol.name())
color = pyqtProperty(QColor, fset=_set_color)
创建并运行动画:
self.anim = QPropertyAnimation(self.pushButton, b"color")
self.anim.setDuration(3000)
self.anim.setStartValue(QColor(255, 50, 50, 50)) # 粉色
self.anim.setKeyValueAt(0.5, QColor(255, 0, 0, 250)) # 红色
self.anim.setEndValue(QColor(255, 250, 50, 50)) # 米黄
self.anim.start()
全部代码:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class MyBtn(QPushButton):
def __init__(self, parent):
super().__init__(parent)
def _set_color(self, rgbCol):
self.setStyleSheet(f"background-color: " + rgbCol.name())
color = pyqtProperty(QColor, fset=_set_color)
class MainWindow(QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.resize(400, 300)
self.btn = MyBtn(self)
self.btn.setText('背景色变换测试用按钮')
self.anim = QPropertyAnimation(self.btn, b"color")
self.anim.setDuration(3000)
self.anim.setStartValue(QColor(255, 50, 50, 50)) # 粉色
self.anim.setKeyValueAt(0.5, QColor(255, 0, 0, 250)) # 红色
self.anim.setEndValue(QColor(255, 250, 50, 50)) # 米黄
self.anim.start()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
myWin = MainWindow()
myWin.show()
sys.exit(app.exec_())
按这思路其实可以完成很多变换,就不举例了。
最后
以上就是靓丽洋葱为你收集整理的pyqt5 改变控件背景色的动画的全部内容,希望文章能够帮你解决pyqt5 改变控件背景色的动画所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复