ZBLOG

QLabel透明动画qpropertyanimation: you're trying to animate a non-existing property opacity of your qobject 怎么解决

这个错误通常是因为尝试在QLabel对象上使用属性动画时,指定了一个不存在的属性。QLabel默认情况下没有名为”opacity”的属性。

如果你想实现QLabel的透明度动画,可以考虑以下两种方法:

  1. 使用自定义效果类(继承自QAbstractAnimationEffect)来实现透明度动画。你需要重写updateCurrentValue()函数,在其中使用适当的方法修改QLabel的透明度。

  2. QLabel放置在一个包含透明度属性的容器小部件中,如QWidget/QFrame/QGraphicsOpacityEffect等,并对该容器小部件应用属性动画。

以下是第二种方法的示例代码:

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

app = QApplication([])

# 创建一个父容器小部件并设置背景色和透明度
container_widget = QWidget()
container_widget.setStyleSheet("background-color: red;")
container_widget.setWindowOpacity(0.5)  # 设置透明度

# 创建 QLabel 并将其放入容器小部件中
label = QLabel("Hello World!")
layout = QVBoxLayout(container_widget)
layout.addWidget(label)

# 创建属性动画对象并对容器小部件的 windowOpacity 属性进行动画操作
animation = QPropertyAnimation(container_widget, b"windowOpacity")
animation.setDuration(1000)
animation.setStartValue(0.5)
animation.setEndValue(1.0)
animation.setEasingCurve(QEasingCurve.OutQuad)

# 开始动画
animation.start()

container_widget.show()
app.exec_()

希望这些信息能对你有所帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=7937

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?