背景
我正在使用pyqtgraph
创建一个交互式程序来绘制和分析一些数据。
相关事物的版本:
PySide版本1.2.1
from PySide import QtGui, QtCore
pyqtgraph
版本0.9.10(目前最新):
from <my own package>.external import pyqtgraph
在Ubuntu 14.04.3 LTS上
代码结构
self.w.dotPlot
是pyqtgraph.PlotWidget
对象我这样画了一个方框:
self.timeBox = self.w.dotPlot.plot(x=self.baseTimeBoxX,y=self.baseTimeBoxY,...)
其中:
from numpy import r_
self.baseTimeBoxX = r_[0.0,0.0,100.0,100.0,0.0]
self.baseTimeBoxY = r_[-1.0,1.0,1.0,-1.0,-1.0]
self.w.timeBox
因此是pyqtgraph.graphicsItems.PlotDataItem.PlotDataItem
当用户点击图表时,我想只在X方向移动框。为此,我找出clickedXCoord
,将其添加到self.baseTimeBoxX,现在想要更新self.w.timeBox
以使用这些x坐标。为此,我打电话给
self.w.timeBox.setData(
x=(clickedXCoord+self.baseTimeBoxX),
y=self.baseTimeBoxY
)
问题
这是我得到的追溯:
Traceback (most recent call last):
File "doesntMatter.py", line <whatever>, in _moveTimeBox
self.w.timeBox.setData(x=(clickedXCoord+self.baseTimeBoxX),y=self.baseTimeBoxY)
TypeError: 'PySide.QtCore.QPointF.__add__' called with wrong argument types:
PySide.QtCore.QPointF.__add__(numpy.ndarray)
Supported signatures:
PySide.QtCore.QPointF.__add__(PySide.QtCore.QPointF)
我尝试过的事情:
我没有使用PlotDataItem
更改现有self.w.timeBox.setData
中的数据,而是尝试创建一个全新的数据:
self.w.timeBox = self.w.dotPlot.plot(
x=(clickedXCoord+self.baseTimeBoxX),
y=self.baseTimeBoxY
)
我的错误基本相同