pyqt5 QWidget中的QWidget从透明到不透明的动画
时间: 2023-11-26 17:06:07 浏览: 131
pyqt5中动画的使用详解
你可以使用QPropertyAnimation类来实现QWidget从透明到不透明的动画效果。以下是一个简单的例子:
```python
from PyQt5.QtCore import QPropertyAnimation
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 300)
self.button = QPushButton("Toggle", self)
self.button.move(100, 100)
self.button.clicked.connect(self.toggle)
self.animation = QPropertyAnimation(self, b"windowOpacity")
self.animation.setDuration(500)
self.animation.setStartValue(0.0)
self.animation.setEndValue(1.0)
self.setWindowOpacity(0.0)
def toggle(self):
if self.windowOpacity() == 0.0:
self.show()
self.animation.setDirection(QPropertyAnimation.Forward)
else:
self.animation.setDirection(QPropertyAnimation.Backward)
def onFinished():
self.hide()
self.animation.finished.connect(onFinished)
self.animation.start()
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
这个例子创建了一个带有一个按钮的窗口,当按钮被点击时,窗口会从透明到不透明或从不透明到透明,并带有一个动画效果。
阅读全文