使用PyQtGraph库时出现AttributeError错误,请求协助解决
解决PyQtGraph中AttributeError: 'int' object has no attribute 'x'的问题
错误根源
错误出在PyQtGraph的GLViewWidget.py文件viewMatrix方法中,代码尝试调用center.x()、center.y()、center.z(),但传入的center是整数类型,不具备这些属性。这说明你的代码给GLViewWidget相关功能传入的中心参数不符合预期——PyQtGraph需要的是带x/y/z方法的三维向量对象,而非单个整数。
具体解决步骤
- 定位代码中设置center的位置:找到你调用GLViewWidget的
setCenter或其他涉及视图中心的代码,检查传入的参数是否为整数(比如view.setCenter(0)这类写法)。 - 替换为正确的三维向量类型:
- 使用PyQtGraph自带的Vector:
import pyqtgraph as pg center = pg.Vector(0, 0, 0) # 替换为你的目标坐标 view.setCenter(center) - 或者使用Qt的QVector3D:
from PyQt5.QtGui import QVector3D center = QVector3D(0, 0, 0) # 替换为你的目标坐标 view.setCenter(center) - 若用自定义对象,确保它实现了
x()、y()、z()三个方法,返回对应坐标值。
- 使用PyQtGraph自带的Vector:
- 检查版本兼容性:若上述修改无效,尝试降级PyQtGraph到稳定版本,比如:
最新版可能和PyOpenGL、PyQt存在兼容问题,稳定版通常能避免这类情况。pip install pyqtgraph==0.13.3 - 重新运行代码验证:修改后执行代码,确认错误是否消除。
内容的提问来源于stack exchange,提问作者Vida Harati
相关产品推荐
相关产品推荐

