我是靠谱客的博主 靓丽洋葱,最近开发中收集的这篇文章主要介绍pyqt5 改变控件背景色的动画,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先自定义一个控件,增加一个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 改变控件背景色的动画所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部