python 动画
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QLabel import sys from PyQt5.QtCore import Qt from PyQt5.QtCore import QPropertyAnimation,QPoint,QSize,QRect,QEasingCurve from PyQt5.QtGui import QPixmap,QPalette,QFont class win(QWidget): def __init__(self): super().__init__() self.resize(400,400) self.setWindowTitle('动画学习') label = QLabel(self) label.resize(200, 120) label.move(150,0) #label.setFont(QFont("Roman times",30)) #label.setStyleSheet("font:20pt '楷体';border-width: 1px;border-style: solid;border-color: rgb(255, 0, 0);color: yellow") #############设置边框 label.setStyleSheet( "font:20pt '楷体';color: yellow") #############设置边框 label.setText("中国加油\n武汉加油\n中国必胜") #ani=QPropertyAnimation(btn,b'pos',self) #创建动画对象 ani = QPropertyAnimation(self) #创建动画对象 #ani.setTargetObject(btn) #设置动画目标对象 ani.setTargetObject(label) #ani.setTargetObject(self) ani.setPropertyName(b'pos') #设置动画属性 #注意:字节类型 #pos---位置动画---QPoint #size---大小动画---QSize #geometry----位置+大小动画----QRect #windowOpacity---窗口的透明度(0.0是透明的 1.0是不透明)---好像只适合顶层窗口 #ani.setStartValue(QPoint(0,0)) #设置开始位置---按钮的左上角位置 #ani.setEndValue(QPoint(300,300)) #设置结束位置 ani.setStartValue(QPoint(150,0)) #设置开始位置---按钮的左上角位置 ani.setEndValue(QPoint(150,400)) #设置结束位置 ani.setDuration(8000) #设置动画单次时长---单位毫秒 ani.setEasingCurve(QEasingCurve.InQuad) #设置动画的节奏 #取值 https://doc.qt.io/qt-5/qeasingcurve.html#Type-enum ani.start() #动画开始---非阻塞 if __name__=='__main__': app=QApplication(sys.argv) w=win() w.setObjectName("MainWindow") w.setStyleSheet("#MainWindow{background-color: red}") w.show() sys.exit(app.exec_())
=========================================