九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
pyqt5 動畫學(xué)習(xí)(二) 改變控件顏色

上一篇我們通過  self.anim = QPropertyAnimation(self.label, b"geometry")創(chuàng)建了一個動畫,改變了空間的大小,這次我們來改變控件的顏色

但是label是沒有color這個動畫屬性的,即設(shè)置  self.anim = QPropertyAnimation(self.label, b"color")是無效的

為此,我們要重寫label類,賦予一個color屬性,例如:

class MyLabel(QLabel):    def __init__(self, text, para):        super().__init__(text, para)    def _set_color(self, col):        self.setAutoFillBackground(True)        palette = self.palette()        palette.setColor(self.backgroundRole(), col)        self.setPalette(palette)    color = pyqtProperty(QColor, fset=_set_color)

還是通過調(diào)色板來改變label的顏色, 然后我們自定義一個名為"color"的屬性

color = pyqtProperty(QColor, fset=_set_color)

定義以后我們就可以正常使用這個屬性了,例如

self.anim = QPropertyAnimation(self.label, b"color")

 

下面是程式完整代碼:

 

#!/usr/bin/python3# -*- coding: utf-8 -*-"""PyQt5 Animation tutorialThis program animates the color of awidget with QPropertyAnimation.Author: Seshigure 401219180@qq.comLast edited: 2018.03.02"""from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class MyLabel(QLabel):    def __init__(self, text, para):        super().__init__(text, para)    def _set_color(self, col):        self.setAutoFillBackground(True)        palette = self.palette()        palette.setColor(self.backgroundRole(), col)        self.setPalette(palette)    color = pyqtProperty(QColor, fset=_set_color)class Example(QWidget):    def __init__(self):        super(Example, self).__init__()        self.initUI()    def initUI(self):        self.button = QPushButton("Start", self)        self.button.clicked.connect(self.doAnim)        self.button.move(30, 30)        self.label = MyLabel("changeColor", self)        self.label._set_color(QColor(255, 50, 50, 50))        self.label.setGeometry(150, 30, 100, 100)        self.setGeometry(300, 300, 380, 300)        self.setWindowTitle('Animation')        self.show()    def doAnim(self):        self.anim = QPropertyAnimation(self.label, 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__":    app = QApplication([])    ex = Example()    ex.show()    app.exec_()

 

 

 

 

界面預(yù)覽圖如下:

 

 

備注:

1、label沒有color動畫屬性,所以我們得重寫label

2、self.anim.setKeyValueAt(0.5, QColor(255, 0, 0, 250))這里使用了一個關(guān)鍵幀,讓動畫完成 粉色>紅色>米黃的顏色轉(zhuǎn)換

 

 

 

 

 

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用python一起進(jìn)入新年倒計時吧,可直接打包成exe應(yīng)用!
PyQt5
PyQt4自定義控件----指示燈控件
信號與槽函數(shù)的自動綁定(三)
PyQt6工具欄&菜單——QAction
Python界面(GUI)編程PyQt5工具欄和菜單
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服