Я пытаюсь рисовать многоугольники без использования pg.PolyLineROI() в pyqtgraph. Моя цель — иметь возможность использовать большие наборы данных вместо «данных» в коде, показанном ниже. Моя проблема с PolyLineROI() заключается в том, что мне не нужны дескрипторы или события, поэтому загрузка больших объемов данных занимает много времени и ресурсов, которые просто тратятся на ненужную функциональность.
Я пытался использовать QPainter и QPen, но мне не удалось получить ничего работающего, поэтому я застрял. Любые идеи?
ОТРЕДАКТИРОВАНО Код, пытающийся включить пример из segFaultCoder
from PyQt4 import QtCore, QtGui
import pyqtgraph as pg
import sys
class plotwindow(QtGui.QMainWindow):
def setupUi(self, MainWindow):
self.centralwidget = QtGui.QWidget(MainWindow)
MainWindow.resize(1900, 1000)
self.qt = pg.GraphicsView(MainWindow)
self.qt.setGeometry(QtCore.QRect(0,0, 1900, 1000))
self.qt2 = pg.GraphicsLayout()
self.qt.setCentralItem(self.qt2)
self.qt.show()
self.layout = self.qt2.addLayout()
self.qt3 = self.layout.addViewBox()
self.plot()
def plot(self): #This is looped for multiple data sets
data = [[6,6],[6,0],[0,6],[0,0]] #changes based on data import
self.picture = QtGui.QPicture()
p = QtGui.QPainter(self.picture)
p.setPen(pg.mkPen('w'))
self.points = []
for item in data:
point = QtCore.QPoint(item[0], item[1])
self.points.append(point)
p.drawPolygon(*self.points)
p.end()
self.qt3.addItem(p)
def paint(self, p, *args):
p.drawPicture(0, 0, self.picture)
def boundingRect(self):
return QtCore.QRectF(self.picture.boundingRect())
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = plotwindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())