【发布时间】:2017-04-24 22:00:39
【问题描述】:
我正在尝试通过 setBrush 传递列表参数。
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import numpy as np
app = QtGui.QApplication([])
mw = QtGui.QMainWindow()
mw.resize(800,800)
view = pg.GraphicsLayoutWidget()
mw.setCentralWidget(view)
mw.setWindowTitle('pyqtgraph example: ScatterPlot')
w1 = view.addPlot()
x = [1,2,3,4,5,6,7,8,9,10]
y = [10,8,6,4,2,20,18,16,14,12]
s1 = pg.ScatterPlotItem(x,y,size=10, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120))
s1.setBrush(['r']*10, mask=None)
w1.addItem(s1)
mw.show()
当我运行此代码时,我收到如下错误:
Traceback(最近一次调用最后一次):文件“”,第 1 行,在
文件 "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", 第 467 行,在 setBrush 中 self.updateSpots(dataSet)
文件 "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", 第 553 行,在 updateSpots 中 self.fragmentAtlas.getAtlas() # 生成图集,以便源宽度可用。
文件 "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", 第 193 行,在 getAtlas 中 self.buildAtlas()
文件 "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", 第 143 行,在 buildAtlas 中 img = renderSymbol(key[0], key[1], sourceRect.pen, sourceRect.brush)
文件 "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", 第 74 行,在 renderSymbol 中 drawSymbol(p, 符号, 大小, 笔, 画笔)
文件 "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", 第 49 行,在 drawSymbol 中 painter.setBrush(brush) TypeError: arguments did not match any overloaded call: QPainter.setBrush(QBrush): argument 1 has 意外类型 'str' QPainter.setBrush(Qt.BrushStyle):参数 1 有意外的类型“str”
如何通过 setBrush 传递列表?我必须为不同的点分配不同的颜色。
【问题讨论】: