Вставить Pyqtgraph в PySide2 - PullRequest
       30

Вставить Pyqtgraph в PySide2

0 голосов
/ 27 сентября 2018

Я хотел бы реализовать PyQtGraph PlotWidget в приложении PySide2.С PyQt5 все работает.С PySide2 я получаю ошибку, показанную внизу.Я уже узнал, что в данный момент ведется работа, но, похоже, что нескольким людям это удалось.Однако я пока не смог.Я использую Pyqtgraph 0.10, а не ветку разработчика.Должен ли я измениться?Что мне нужно сделать?

from PySide2.QtWidgets import QApplication, QMainWindow, QGraphicsView, QVBoxLayout, QWidget
import sys
import pyqtgraph as pg


class WdgPlot(QWidget):
    def __init__(self, parent=None):
        super(WdgPlot, self).__init__(parent)
        self.layout = QVBoxLayout(self)

        self.pw = pg.PlotWidget(self)
        self.pw.plot([1,2,3,4])
        self.pw.show()
        self.layout.addWidget(self.pw)
        self.setLayout(self.layout)
if __name__ == '__main__':

    app = QApplication(sys.argv)
    w = WdgPlot()
    w.show()
    sys.exit(app.exec_())

Ошибка:

 QtGui.QGraphicsView.__init__(self, parent)
TypeError: arguments did not match any overloaded call:
  QGraphicsView(parent: QWidget = None): argument 1 has unexpected type 'WdgPlot'
  QGraphicsView(QGraphicsScene, parent: QWidget = None): argument 1 has unexpected type 'WdgPlot'
Traceback (most recent call last):

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Для всех, кто получает ошибки с Point - я вручную импортировал из PySide2.QtCore import QPoint в файлы, сообщая мне об ошибке, и изменил Point на QPoint.Не официально, но исправляет пока.

Просмотреть исправление здесь https://github.com/pyqtgraph/pyqtgraph/pull/818/files

0 голосов
/ 27 сентября 2018

В стабильной ветке pyqtgraph даже PySide2 не поддерживается, поэтому он импортирует QtGui.QGraphicsView, который должен принадлежать PyQt4 или PySide, поскольку в PyQt5 и PySide2 QGraphicsView принадлежит подмодулю QtWidgets, а не QtGui.

В ветке разработки реализована поддержка PySide2, поэтому, если вы хотите использовать PySide2, вам придется установить его вручную с помощью следующих команд (сначала необходимо удалить установленный pyqtgraph):

git clone -b develop git@github.com:pyqtgraph/pyqtgraph.git
sudo python setup.py install

ЗатемВы можете использовать:

from PySide2 import QtWidgets
import pyqtgraph as pg


class WdgPlot(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(WdgPlot, self).__init__(parent)
        layout = QtWidgets.QVBoxLayout(self)

        pw = pg.PlotWidget()
        pw.plot([1,2,3,4])
        layout.addWidget(pw)


if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = WdgPlot()
    w.show()
    sys.exit(app.exec_())

enter image description here

Больше информации в:

...