这个回答不对,窗口不会显示
时间: 2023-08-21 18:01:51 浏览: 66
无法显示打开的窗口
非常抱歉,我的回答有误。以下是一个修正后的例子:
```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.animation.setDirection(QPropertyAnimation.Forward)
self.show()
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_()
```
这个例子创建了一个带有一个按钮的窗口,当按钮被点击时,窗口会从透明到不透明或从不透明到透明,并带有一个动画效果。这个修正后的例子中,我们在 `if` 语句中先设置了动画的方向,再将窗口显示出来。这样可以确保窗口在开始动画之前就已经处于可见状态。
阅读全文