QGraphicsOpacityEffect opacity动画
时间: 2024-03-10 21:43:12 浏览: 105
QGraphicsOpacityEffect 是另一个可以添加到 graphicsEffect 属性的类,它可以实现透明度的变化。要为 QGraphicsOpacityEffect 添加动画,可以借助 QPropertyAnimation。以下是一个简单的示例:
```python
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MyWidget(QWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
# 创建一个 QGraphicsOpacityEffect 对象
self.effect = QGraphicsOpacityEffect()
self.effect.setOpacity(1.0)
# 将 QGraphicsOpacityEffect 对象设置为 graphicsEffect 属性
self.setGraphicsEffect(self.effect)
# 创建一个属性动画,让 QGraphicsOpacityEffect 的透明度从 1.0 变成 0.2
self.animation = QPropertyAnimation(self.effect, b"opacity")
self.animation.setDuration(1000)
self.animation.setStartValue(1.0)
self.animation.setEndValue(0.2)
# 创建一个按钮,点击按钮开始动画
self.button = QPushButton("Start Animation", self)
self.button.clicked.connect(self.startAnimation)
def startAnimation(self):
self.animation.start()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个 MyWidget 类继承自 QWidget,并添加了一个 QGraphicsOpacityEffect 对象作为 graphicsEffect 属性。然后,我们创建了一个 QPropertyAnimation 对象,让 QGraphicsOpacityEffect 的透明度从 1.0 变成 0.2,并在按钮点击时启动动画。运行代码,你会看到一个带有透明度效果的窗口,在点击按钮后,窗口的透明度会从 1.0 逐渐降低到 0.2。