Python pyqtgraph:调用PlotDataItem.setData会给出TypeError:PySide.QtCore.QPointF.\uu添加\uuuuuuuuuu使用错误的参数类型调用

Python pyqtgraph:调用PlotDataItem.setData会给出TypeError:PySide.QtCore.QPointF.\uu添加\uuuuuuuuuu使用错误的参数类型调用,python,pyside,pyqtgraph,Python,Pyside,Pyqtgraph,背景 我正在使用pyqtgraph制作一个交互式程序,用于绘制和分析一些数据 相关事物的版本: PySide版本1.2.1 from PySide import QtGui, QtCore pyqtgraph0.9.10版(目前最新版本): 其中: from numpy import r_ self.baseTimeBoxX = r_[0.0,0.0,100.0,100.0,0.0] self.baseTimeBoxY = r_[-1.0,

背景

  • 我正在使用
    pyqtgraph
    制作一个交互式程序,用于绘制和分析一些数据

  • 相关事物的版本:

    • PySide版本1.2.1

      from PySide import QtGui, QtCore
      
    • pyqtgraph
      0.9.10版(目前最新版本):

      其中:

              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)
    
    我基本上犯了同样的错误


回溯看起来非常清晰:您只能向另一个
QPointF
@ekhumoro添加一个回溯。回溯比我见过的一些回溯更清晰,但我不想向QPointF添加任何内容。根据文档,setData方法采用与
\uuuuu init\uuuuu
方法相同的参数,我所做的调用完全有效。我没有直接调用QPointF。uuu add_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。错误发生在
doesntMatter.py
中,而不是在定义
setData
的任何地方。愚蠢的我,我是在给
self.baseTimeBoxX
添加一个QPointF,而不仅仅是一个标量。谢谢,ekhumoro。回溯看起来很清楚:你只能在另一个
QPointF
@ekhumoro中添加一个。回溯比我见过的一些更清楚,但我不想在QPointF中添加任何内容。根据文档,setData方法采用与
\uuuuu init\uuuuu
方法相同的参数,我所做的调用完全有效。我没有直接调用QPointF。uuu add_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。错误发生在
doesntMatter.py
中,而不是在定义
setData
的任何地方。愚蠢的我,我是在给
self.baseTimeBoxX
添加一个QPointF,而不仅仅是一个标量。谢谢你,埃克胡洛。
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)
self.w.timeBox = self.w.dotPlot.plot(
x=(clickedXCoord+self.baseTimeBoxX),
y=self.baseTimeBoxY
)