Python Pyside에서 PyQtGraph를 사용할 때 import의 순서에 주의하십시오

4339 단어 PyQtGraphPySidePython

이거부터 임.py로 저장하고 실행합니다.

from PySide import QtCore, QtGui
import pyqtgraph as pg

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)
        
        self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")

        self.graph01 = pg.PlotWidget(self.centralwidget)
        self.graph01.setObjectName("graph01")
        self.verticalLayout.addWidget(self.graph01)
        
        self.psbtn = QtGui.QPushButton(self.centralwidget)
        self.psbtn.setObjectName("psbtn")
        self.psbtn.setText("Plot")
        self.verticalLayout.addWidget(self.psbtn)

        QtCore.QObject.connect(self.psbtn, QtCore.SIGNAL("clicked()"), self.plot)
        

    def plot(self):
        frq = 10.0
        duration = 1.0
        samples = 1001
        x = np.linspace(0, duration, samples)
        rad = np.linspace(0, 2 * np.pi * frq, samples)
        y = np.sin(rad)
        self.graph01.plot(x, y)
        

import sys
import numpy as np

pg.setConfigOption('foreground', 'k')
pg.setConfigOption('background', 'w')


class ControlMainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(ControlMainWindow, self).__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    mySW = ControlMainWindow()#class no instance-ka
    mySW.show()
    sys.exit(app.exec_())

이렇게 됐어요.



첫 줄로 바꾸다


그러니까 이 순서대로.
import pyqtgraph as pg
from PySide import QtCore, QtGui
오류가 발생했습니다.
TypeError: arguments did not match any overloaded call:
QGraphicsView(QWidget parent=None): argument 1 has unexpected type 'PySide.QtGui.QWidget'
QGraphicsView(QGraphicsScene, QWidget parent=None): argument 1 has unexpected type 'PySide.QtGui.QWidget'

이유가 여기 적혀있어요.


http://www.pyqtgraph.org/documentation/how_to_use.html#pyqt-and-pyside
번역한 것 같아요.
PyQt 및 PySide
PyQtGraph는 두 개의 유행하는 QT 라이브러리인 Python 래퍼, PyQt, PySide를 지원합니다.
두 패키지 모두 거의 같은 API와 함수를 제공하지만 여러 가지 이유로 그 중 하나를 선택해서 사용할 것이라고 생각합니다.
pyqtgraph를 처음 시작할 때,pyqtgraph는 다음 검사 항목에 따라 어느 라이브러리를 사용할지 자동으로 결정합니다.
1 PyQt4가 import 인 경우
만약 그렇지 않다면, 만약 PySide가 이미 import에 의해 사용되었다면, 그것을 사용하십시오
3 만약 그렇지 않다면 PyQt4의 import을 시도해 보세요
4 PyQt4의 import이 실패하면 PySide의 import을 시도합니다.
시스템에 PyQt4와 PySide 두 개의 프로그램 라이브러리가 설치되어 있다면,pyqtgraph를 사용하려면, 간단한 import pyqtgraph를 사용하기 전에 이 프로그램 라이브러리 import을 사용하십시오.
import PySide ## this will force pyqtgraph to use PySide instead of PyQt4
import pyqtgraph as pg
아까 잘못
argument 1 has unexpected type 'PySide.QtGui.QWidget
self.graphi01=pg.PlaotWidget(self.centralwidget)의 한 줄에서pyqtgraph.PlaotWidget은 파라미터에 PyQt를 추가할 예정입니다.

'PySide.QtGui.QWidget'이 들어왔다.
매개변수 1은 예상치 못한 유형'PySide입니다.QtGui.나는 QWidget이 있다.
나는 이런 상태라고 생각한다.

PyQtGraph


Python으로 그림을 그리는 프로그램 라이브러리입니다.
http://www.pyqtgraph.org/

Matplotlib 안 돼요?


아니, 안돼.
Matplotlib은 Python으로 그려진 표준 프로그램 라이브러리입니다.
하지만 PyQtGraph는 더 빠르다.
http://yukara-13.hatenablog.com/entry/2013/12/05/025655

PySide 및 PyQt


파이톤에서 GUI를 만들기 위해 Qt를 사용하려면 이 두 가지 옵션 중 하나를 선택하십시오.
라이센스에는 LGPL과 GPL의 차이가 있습니다.
PySide・・LGPL.아무도 사용하지 않는지 모르겠지만, 나는 인터넷에 정보가 매우 적다고 생각한다.(구글 검색하면 약 21000건)
PyQt・・GPL.왼쪽 복사.나는 사용자의 수가 검색 결과에 나타날 것이라고 생각한다.(구글 검색 667000건)

좋은 웹페이지 즐겨찾기