Python 属性错误:';QScatterSeries';对象没有属性';点数';

Python 属性错误:';QScatterSeries';对象没有属性';点数';,python,pyqt,pyqt5,qchart,Python,Pyqt,Pyqt5,Qchart,和标题差不多。我有一个QScatterSeries对象。我可以将数据加载到其中并将其添加到QChart中,但是如果我尝试使用类似于 from PyQt5.QtChart import QScatterSeries from PyQt5.QtCore import QPointF my_scatter_series.points = QScatterSeries() my_scatter_series.points.append(QPointF(1.0,3.0)) my_scatter_seri

和标题差不多。我有一个QScatterSeries对象。我可以将数据加载到其中并将其添加到QChart中,但是如果我尝试使用类似于

from PyQt5.QtChart import QScatterSeries
from PyQt5.QtCore import QPointF

my_scatter_series.points = QScatterSeries()
my_scatter_series.points.append(QPointF(1.0,3.0))
my_scatter_series.points.append(QPointF(2.0,5.0))
my_scatter_series.points.append(QPointF(4.0,7.0))
point_list = my_scatter_series.points()
我得到一个属性错误

AttributeError:“QScatterSeries”对象没有属性“points”

points()绝对是QXYSeries中的一个方法,QScatterSeries对其进行了扩展,所以这应该是我可以做的事情,不是吗

python 3.6.7

PyQt5.11.3


PyQtChart 5.11.3有两种类似的方法:

从概念上讲,这两个容器与列表相似,因此绑定(PyQt5/PySide2)必须选择使用其中的哪一个,如果对文档进行更详细的审查,则会发现:

以列表形式返回序列中的点。使用pointsVector()可获得更好的性能

以向量形式返回序列中的点。这比调用点()更有效

结论是,最合适的方法是使用pointsVector(),因此这就是解决方案:

从PyQt5.QtChart导入QScatterSeries
从PyQt5.QtCore导入QPointF
my_scatter_series=QScatterSeries()
my_scatter_series.append(QPointF(1.0,3.0))
my_scatter_series.append(QPointF(2.0,5.0))
my_scatter_series.append(QPointF(4.0,7.0))
point\u list=my\u scatter\u series.pointsVector()
打印(点列表)
输出:

[PyQt5.QtCore.QPointF(1.0, 3.0), PyQt5.QtCore.QPointF(2.0, 5.0), PyQt5.QtCore.QPointF(4.0, 7.0)]

我遇到了同样的问题。我的解决方案是从PyQt5切换到PySide2,然后问题就解决了。

QList qxySetries::points()const是QScatterSeries中缺少的内容。看起来pointsVector()可以工作了。不知怎么的,我错过了one@JWebster不是所有的方法/类都是由PyQt映射的,很多时候因为它不能,其他的因为有更好的选择,在这种情况下PooToScCurror()比Posits()更有效,Python的情况下,它们都产生相同的结果,在C++的情况下,它们在内存管理方面有所不同。