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

时间:2019-07-07 19:57:18

标签: 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_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 ...

  

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

points()绝对是QXYSeries中QScatterSeries扩展的一种方法,所以这应该是我可以做的事情吗?

https://doc.qt.io/qt-5/qscatterseries-members.html

python 3.6.7

PyQt5 5.11.3

PyQtChart 5.11.3

2 个答案:

答案 0 :(得分:2)

有2种相似的方法:

从概念上讲,这是两个类似于list的容器,因此binding(PyQt5 / PySide2)必须选择使用哪个容器,如果对文档进行了更详细的检查,则会发现:

  

QList QXYSeries::points() const

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

     

QVector QXYSeries::pointsVector() const

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

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

from PyQt5.QtChart import QScatterSeries
from PyQt5.QtCore import 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_list = my_scatter_series.pointsVector()
print(point_list)

输出:

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

答案 1 :(得分:0)

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