一、pyqt5中動(dòng)畫的繼承關(guān)系圖
創(chuàng)新互聯(lián)建站專注于長子網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供長子營銷型網(wǎng)站建設(shè),長子網(wǎng)站制作、長子網(wǎng)頁設(shè)計(jì)、長子網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造長子網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供
長子網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
二、關(guān)于QAbstractAnimation父類的認(rèn)識(shí)
1、主要作用
- 繼承此類, 實(shí)現(xiàn)一些自定義動(dòng)畫
- 所有動(dòng)畫共享的功能
2、功能作用
循環(huán)操作
- setLoopCount(count):設(shè)置循環(huán)次數(shù)
- currentLoop():當(dāng)前循環(huán)
- currentLoopTime():當(dāng)前循環(huán)時(shí)間
時(shí)間操作
- duration():單次時(shí)長
- totalDuration():動(dòng)畫總時(shí)長
- currentTime():當(dāng)前時(shí)長
動(dòng)畫方向
- setDirection(QAbstractAnimation.Forward/QAbstractAnimation.Backward)
動(dòng)畫狀態(tài)state()
- QAbstractAnimation.Stopped:動(dòng)畫停止
- QAbstractAnimation.Paused:動(dòng)畫暫停
- QAbstractAnimation.Running:動(dòng)畫運(yùn)行
三、QPropertyAnimation屬性動(dòng)畫的使用
主要用于實(shí)現(xiàn)某個(gè)屬性值從x到y(tǒng)的動(dòng)畫變化
1、定義動(dòng)畫的主要步驟
- 創(chuàng)建一個(gè)動(dòng)畫,并設(shè)置目標(biāo)、屬性
- 設(shè)置屬性值的開始、插值、結(jié)束
- 動(dòng)畫時(shí)長
- 啟動(dòng)動(dòng)畫
2、構(gòu)造函數(shù)使用方式
1.QPropertyAnimation(parent: QObject = None)
- 設(shè)置動(dòng)畫目標(biāo):setTargetObject(self, QObject)
- 設(shè)置動(dòng)畫屬性(位置、大小等):setPropertyName(self, Union[QByteArray, bytes, bytearray])
2.QPropertyAnimation(QObject, Union[QByteArray, bytes, bytearray], parent: QObject = None)
3、常見的屬性
- geometry
- pos
- size
- windowOpacity
4、設(shè)置開始值和結(jié)束值
- setStartValue(self, Any)
- setEndValue(self, Any)
- setKeyValueAt(self, float, Any)
- setKeyValues(self, object)
5、設(shè)置動(dòng)畫時(shí)長
6、啟動(dòng)動(dòng)畫
7、簡單案例(位置的)
import sys
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('動(dòng)畫')
self.resize(500, 500)
self.move(400, 200)
self.btn = QPushButton(self)
self.init_ui()
def init_ui(self):
self.btn.resize(100, 100)
self.btn.move(0, 0)
self.btn.setStyleSheet('QPushButton{border: none; background: pink;}')
# 1.定義一個(gè)動(dòng)畫
animation = QPropertyAnimation(self)
animation.setTargetObject(self.btn)
animation.setPropertyName(b'pos')
# 使用另外一種構(gòu)造函數(shù)方式創(chuàng)建
# animation = QPropertyAnimation(self.btn, b'pos', self)
# 2.設(shè)置屬性值
animation.setStartValue(QPoint(0, 0))
animation.setEndValue(QPoint(400, 400))
# 3.設(shè)置時(shí)長
animation.setDuration(3000)
# 4.啟動(dòng)動(dòng)畫
animation.start()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
網(wǎng)頁名稱:pyqt5中動(dòng)畫的使用詳解-創(chuàng)新互聯(lián)
路徑分享:
http://weahome.cn/article/dsdjss.html