91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

python qpushbutton的動畫效果如何實現

小樊
88
2024-09-06 15:32:31
欄目: 編程語言

在 PyQt5 中,可以使用 QPropertyAnimation 類來為 QPushButton 添加動畫效果

import sys
from PyQt5.QtCore import QPropertyAnimation, QEasingCurve
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton

class AnimatedButton(QPushButton):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        
        self.animation = QPropertyAnimation(self, b"minimumWidth")
        self.animation.setDuration(1000)  # 設置動畫時長(毫秒)
        self.animation.setStartValue(50)   # 設置起始寬度
        self.animation.setEndValue(200)    # 設置結束寬度
        self.animation.setEasingCurve(QEasingCurve.OutBounce)  # 設置緩動曲線
        self.animation.finished.connect(self.on_animation_finished)

    def on_animation_finished(self):
        self.setMinimumWidth(50)  # 將按鈕寬度重置為初始值

    def mousePressEvent(self, event):
        self.animation.start()  # 開始動畫
        super().mousePressEvent(event)

app = QApplication(sys.argv)
window = QWidget()
layout = QVBoxLayout(window)

animated_button = AnimatedButton("點擊我")
layout.addWidget(animated_button)

window.show()
sys.exit(app.exec_())

在這個示例中,我們創建了一個名為 AnimatedButton 的自定義 QPushButton 類。當用戶點擊按鈕時,會觸發一個動畫效果,使按鈕的寬度從 50 像素增加到 200 像素,然后回彈到初始寬度。動畫時長為 1000 毫秒,緩動曲線設置為 QEasingCurve.OutBounce。

要實現其他動畫效果,可以修改 QPropertyAnimation 的參數,例如更改屬性、持續時間、起始值和結束值等。還可以嘗試其他緩動曲線,如 QEasingCurve.InOutElastic 或 QEasingCurve.InOutBack。

0
特克斯县| 贵南县| 天全县| 昭觉县| 拉萨市| 娄底市| 陇南市| 华安县| 开原市| 遂平县| 津南区| 明光市| 灵山县| 平武县| 墨竹工卡县| 永福县| 安塞县| 孟连| 阳高县| 大安市| 内乡县| 宁南县| 天全县| 通州市| 东光县| 沙雅县| 西华县| 赣榆县| 措美县| 江都市| 巴楚县| 全椒县| 福贡县| 东乌珠穆沁旗| 黎川县| 静安区| 启东市| 始兴县| 体育| 湘潭县| 邯郸市|