Lorsque vous utilisez PyQtGraph avec Python Pyside, faites attention à l'ordre d'importation

Pour le moment, enregistrez-le sous im.py et exécutez-le.

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)

    <span style="color: #008000">self</span><span style="color: #666666">.</span>verticalLayout <span style="color: #666666">=</span> QtGui<span style="color: #666666">.</span>QVBoxLayout(<span style="color: #008000">self</span><span style="color: #666666">.</span>centralwidget)
    <span style="color: #008000">self</span><span style="color: #666666">.</span>verticalLayout<span style="color: #666666">.</span>setObjectName(<span style="color: #BA2121">&quot;verticalLayout&quot;</span>)

    <span style="color: #008000">self</span><span style="color: #666666">.</span>graph01 <span style="color: #666666">=</span> pg<span style="color: #666666">.</span>PlotWidget(<span style="color: #008000">self</span><span style="color: #666666">.</span>centralwidget)
    <span style="color: #008000">self</span><span style="color: #666666">.</span>graph01<span style="color: #666666">.</span>setObjectName(<span style="color: #BA2121">&quot;graph01&quot;</span>)
    <span style="color: #008000">self</span><span style="color: #666666">.</span>verticalLayout<span style="color: #666666">.</span>addWidget(<span style="color: #008000">self</span><span style="color: #666666">.</span>graph01)
    
    <span style="color: #008000">self</span><span style="color: #666666">.</span>psbtn <span style="color: #666666">=</span> QtGui<span style="color: #666666">.</span>QPushButton(<span style="color: #008000">self</span><span style="color: #666666">.</span>centralwidget)
    <span style="color: #008000">self</span><span style="color: #666666">.</span>psbtn<span style="color: #666666">.</span>setObjectName(<span style="color: #BA2121">&quot;psbtn&quot;</span>)
    <span style="color: #008000">self</span><span style="color: #666666">.</span>psbtn<span style="color: #666666">.</span>setText(<span style="color: #BA2121">&quot;Plot&quot;</span>)
    <span style="color: #008000">self</span><span style="color: #666666">.</span>verticalLayout<span style="color: #666666">.</span>addWidget(<span style="color: #008000">self</span><span style="color: #666666">.</span>psbtn)

    QtCore<span style="color: #666666">.</span>QObject<span style="color: #666666">.</span>connect(<span style="color: #008000">self</span><span style="color: #666666">.</span>psbtn, QtCore<span style="color: #666666">.</span>SIGNAL(<span style="color: #BA2121">&quot;clicked()&quot;</span>), <span style="color: #008000">self</span><span style="color: #666666">.</span>plot)
    

<span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">plot</span>(<span style="color: #008000">self</span>):
    frq <span style="color: #666666">=</span> <span style="color: #666666">10.0</span>
    duration <span style="color: #666666">=</span> <span style="color: #666666">1.0</span>
    samples <span style="color: #666666">=</span> <span style="color: #666666">1001</span>
    x <span style="color: #666666">=</span> np<span style="color: #666666">.</span>linspace(<span style="color: #666666">0</span>, duration, samples)
    rad <span style="color: #666666">=</span> np<span style="color: #666666">.</span>linspace(<span style="color: #666666">0</span>, <span style="color: #666666">2</span> <span style="color: #666666">*</span> np<span style="color: #666666">.</span>pi <span style="color: #666666">*</span> frq, samples)
    y <span style="color: #666666">=</span> np<span style="color: #666666">.</span>sin(rad)
    <span style="color: #008000">self</span><span style="color: #666666">.</span>graph01<span style="color: #666666">.</span>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_())

Sera comme ça

Screenshot from 2016-08-22 11-11-38.png

Si vous permutez les deux premières lignes

En d'autres termes, dans cet ordre

import pyqtgraph as pg
from PySide import QtCore, QtGui
Une erreur se produit. 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'

La raison a été écrite ici

http://www.pyqtgraph.org/documentation/how_to_use.html#pyqt-and-pyside Probablement traduit.

PyQt et PySide

PyQtGraph prend en charge PyQt et PySide, les wrappers Python pour deux bibliothèques QT populaires. Les deux packages fournissent presque les mêmes API et fonctions, mais pour diverses raisons, je pense que vous devriez choisir l'un ou l'autre. Lors de la première importation de pyqtgraph, pyqtgraph déterminera automatiquement la bibliothèque à utiliser avec les éléments de contrôle suivants:

1 Si PyQt4 est déjà importé, utilisez-le 2 Sinon, si PySide est déjà importé, utilisez-le, 3 Sinon, essayez d'importer PyQt4 et 4 Si l'importation PyQt4 échoue, essayez d'importer PySide.

Si les bibliothèques PyQt4 et PySide sont installées sur votre système et que vous souhaitez utiliser pyqtgraph de chaque côté, importez simplement cette bibliothèque avant d'importer pyqtgraph. S'il vous plaît.

import PySide ## this will force pyqtgraph to use PySide instead of PyQt4 import pyqtgraph as pg

Erreur antérieure, l'argument 1 a un type inattendu "PySide.QtGui.QWidget"

Dans la ligne self.graph01 = pg.PlotWidget (self.centralwidget), pyqtgraph.PlotWidget avait l'intention d'avoir quelque chose de PyQt dans l'argument ↓ «PySide.QtGui.QWidget» est arrivé. L'argument 1 a un type inattendu "PySide.QtGui.QWidget". Je pense que c'est l'état. PyQtGraph Une bibliothèque pour le traçage en Python. http://www.pyqtgraph.org/

Matplotlib est-il inutile?

Pas mal. Matplotlib est une bibliothèque standard pour le traçage en Python. Mais PyQtGraph est plus rapide. http://yukara-13.hatenablog.com/entry/2013/12/05/025655

PySide et PyQt

Si vous souhaitez créer une interface graphique à l'aide de Qt en Python, vous pouvez choisir entre les deux. Il y a une différence entre LGPL et GPL dans la licence. PySide ・ ・ ・ LGPL. J'ai le sentiment qu'il n'y a pas beaucoup d'informations sur le net, probablement parce que peu de gens l'utilisent. (Environ 214 000 lors de la recherche sur Google) PyQt ・ ・ ・ GPL. Copiez à gauche. J'ai l'impression que le nombre d'utilisateurs apparaît dans les résultats de recherche. (Recherche Google 667 000)

Recommended Posts

Lorsque vous utilisez PyQtGraph avec Python Pyside, faites attention à l'ordre d'importation
Comment mettre à niveau correctement le logiciel lors de la construction de Linux (CentOS) avec Vagrant ~ En utilisant l'exemple de mise à niveau de Python 2.7 vers Python 3.6 ~
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
J'ai essayé de trouver l'entropie de l'image avec python
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Précautions lors de l'utilisation de Python avec AtCoder
Choses à garder à l'esprit lors de l'utilisation de cgi avec python.
Liste des bibliothèques à installer lors de l'installation de Python à l'aide de Pyenv
Récupérez la source de la page à charger indéfiniment avec python.
Comment connaître le nombre de GPU de python ~ Remarques sur l'utilisation du multitraitement avec pytorch ~
Essayez d'importer dans la base de données en manipulant ShapeFile d'informations numériques sur les terres nationales avec Python
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
Je veux sortir le début du mois prochain avec Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Lorsque vous souhaitez utiliser plusieurs versions de la même bibliothèque Python (environnement virtuel utilisant venv)
Que faire si vous obtenez un avertissement "Mauvaise plateforme Python" lors de l'utilisation de Python avec l'EDI NetBeans
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Vérifier l'existence du fichier avec python
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
Remarque Python: lorsque vous souhaitez connaître les attributs d'un objet
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Travailler avec OpenStack à l'aide du SDK Python
Comment gérer l'erreur SSL lors de la connexion à S3 avec Python boto
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Comment résoudre le problème de l'échec de la construction lorsque CI / CD de Python Function avec AWS Amplify
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Obtenez et estimez la forme de la tête en utilisant Dlib et OpenCV avec python
[Introduction à Python] Quelle est la méthode de répétition avec l'instruction continue?
La route de la compilation vers Python 3 avec Thrift
[Python] J'ai essayé de juger l'image du membre du groupe d'idols en utilisant Keras
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
Simulons la transition du taux d'infection par rapport à la densité de population avec python
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 2: importer des données dans SQL Server à l'aide de PowerShell
Ce que vous voulez mémoriser avec la grammaire de base de "manipulation de chaînes" de python
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
Pour envoyer automatiquement des e-mails avec des pièces jointes à l'aide de l'API Gmail en Python
Comment obtenir une liste de fichiers dans le même répertoire avec python
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Préparer l'environnement d'exécution de Python3 avec Docker
Mathématiques Todai 2016 résolues avec Python
Résumé de la façon d'importer des fichiers dans Python 3
[Note] Exportez le html du site avec python.
Spécifiez le fichier exécutable Python à utiliser avec virtualenv
Vérifiez la date du devoir de drapeau avec Python
Dites bonjour au monde avec Python avec IntelliJ
Éliminez les inconvénients du widget QDock avec PySide
Encodage de caractères lors de l'utilisation du module csv de python 2.7.3