2016-10-18 3 views
1

Ich versuche, ein Diagramm in meine PySide GUI unter Verwendung pyqtgraph einzufügen.Importieren von QtGui aus pyqtgraph.Qt als *

Ziel: weiterhin verwenden Wildcard-Importe für PySide während pyqtgraph s Import-Regeln gehorchen.

Anscheinend PySide.QtCore und PySide.QtGui muss durch pyqtgraph importiert werden, damit das Paket richtig funktioniert. In dem Beispiel, es ist wie folgt geschrieben:

from pyqtgraph.Qt import QtCore, QtGui 

Typischerweise importiere ich die pyside Komponenten wie:

from PySide.QtCore import * 
from PySide.QtGui import * 

Beachten Sie die Wildcard-Import-Anweisung. Das Problem ist, dass die folgende eine Ausnahme auf Import wirft (ImportError: No module named QtGui):

from pyqtgraph.Qt.QtCore import * 
from pyqtgraph.Qt.QtGui import * 

Gibt es eine Möglichkeit, um dieses? Ich würde es vorziehen, nicht in meinen Code zurückzukehren und alle self.clock_timer = QTimer() durch self.clock_timer = QtCore.Timer() Aussagen zu ersetzen.

Short Cut: Wenn ich könnte, vermeiden durch pyqtgraph gehen QtCore und QtGui zu importieren, die noch besser sein würde. Wenn ich versuche, es zu tun (mit dem ersten Import-Stil), funktionieren bestimmte Funktionen (z. B. AutoPan) nicht.

Antwort

1

Setzen Sie diese am Anfang Ihrer Anwendung, die pyqtgraph, um sicherzustellen, vorab lädt die pyside Module (und tut, was affen Patchen es tun muss):

import os 

os.environ['PYQTGRAPH_QT_LIB'] = 'PySide' 

from pyqtgraph import Qt 

Jetzt können Sie sicher Ihre bevorzugte Importe verwenden , denn sys.modules enthält bereits was auch immer (gepatchte) Module pyqtgraph geladen:

from PySide.QtCore import * 
+0

Das sieht vielversprechend aus! Ich werde es in ein paar Tagen ausprobieren können und komme dann definitiv zurück, um Ihnen die Kontrolle zu geben, ob es funktioniert. –

Verwandte Themen