You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt6使用QEasingCurve设置动画缓动曲线报AttributeError如何解决

报错解决方案

你遇到的AttributeError: type object 'QEasingCurve' has no attribute 'InOutQuad'报错,通常由两个原因导致,对应解决方法如下:

原因1:导入路径错误

请确保你已经正确导入QEasingCurve类,根据你使用的Qt绑定版本,导入语句对应为:

  • PyQt5 / PySide2 版本:
from PyQt5.QtCore import QEasingCurve, QPropertyAnimation
# 若用模块化导入请确认QtCore指向正确的模块路径
  • PyQt6 / PySide6 版本:
from PyQt6.QtCore import QEasingCurve, QPropertyAnimation

原因2:Qt6系列枚举访问规则调整

如果你使用的是PyQt6 / PySide6版本,Qt对枚举成员的访问规则做了严格限制,QEasingCurve的缓动曲线类型属于Type子枚举,不能直接通过QEasingCurve类访问,需要加上中间层Type:
你原代码中的对应行:

self.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuad)

修改为:

self.animation.setEasingCurve(QtCore.QEasingCurve.Type.InOutQuad)

其余曲线枚举值对应修改即可,例如:

  • Linear改为QtCore.QEasingCurve.Type.Linear
  • InQuad改为QtCore.QEasingCurve.Type.InQuad
  • OutQuad改为QtCore.QEasingCurve.Type.OutQuad

快速验证方法

如果不确定当前环境支持的访问方式,可以运行以下代码打印可访问的成员,确认正确的调用路径:

print([attr for attr in dir(QtCore.QEasingCurve) if 'InOutQuad' in attr or 'Type' in attr])

内容的提问来源于stack exchange,提问作者Jack Zero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 06:24:05