From 8bdc19be75a7552cc0043bf8b5f5e0ee796edda0 Mon Sep 17 00:00:00 2001
From: Max Peng
Date: Sun, 18 Sep 2016 16:20:24 +0800
Subject: [PATCH 1/3] update to support pyside2
---
examples/ScatterPlotSpeedTest.py | 4 +-
examples/VideoSpeedTest.py | 4 +-
examples/__main__.py | 4 +-
examples/exampleLoaderTemplate_pyqt.py | 3 +-
examples/exampleLoaderTemplate_pyside2.py | 93 +++++++++
pyqtgraph/GraphicsScene/exportDialog.py | 4 +-
.../exportDialogTemplate_pyside2.py | 64 +++++++
pyqtgraph/Qt.py | 176 ++++++++++++++----
pyqtgraph/canvas/Canvas.py | 6 +-
pyqtgraph/canvas/CanvasItem.py | 6 +-
pyqtgraph/canvas/CanvasTemplate_pyside2.py | 96 ++++++++++
.../canvas/TransformGuiTemplate_pyside2.py | 56 ++++++
pyqtgraph/console/Console.py | 4 +-
pyqtgraph/console/template_pyside2.py | 107 +++++++++++
pyqtgraph/flowchart/Flowchart.py | 5 +-
.../FlowchartCtrlTemplate_pyside2.py | 67 +++++++
.../flowchart/FlowchartTemplate_pyside2.py | 55 ++++++
pyqtgraph/functions.py | 6 +-
pyqtgraph/graphicsItems/FillBetweenItem.py | 2 +-
pyqtgraph/graphicsItems/GraphicsObject.py | 6 +-
pyqtgraph/graphicsItems/PlotItem/PlotItem.py | 2 +
.../PlotItem/plotConfigTemplate_pyside2.py | 169 +++++++++++++++++
pyqtgraph/graphicsItems/ScatterPlotItem.py | 4 +-
pyqtgraph/graphicsItems/UIGraphicsItem.py | 6 +-
.../graphicsItems/ViewBox/ViewBoxMenu.py | 4 +-
.../ViewBox/axisCtrlTemplate_pyside2.py | 89 +++++++++
pyqtgraph/imageview/ImageView.py | 6 +-
.../imageview/ImageViewTemplate_pyqt5.py | 14 +-
.../imageview/ImageViewTemplate_pyside2.py | 156 ++++++++++++++++
pyqtgraph/widgets/RemoteGraphicsView.py | 4 +-
30 files changed, 1155 insertions(+), 67 deletions(-)
create mode 100644 examples/exampleLoaderTemplate_pyside2.py
create mode 100644 pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py
create mode 100644 pyqtgraph/canvas/CanvasTemplate_pyside2.py
create mode 100644 pyqtgraph/canvas/TransformGuiTemplate_pyside2.py
create mode 100644 pyqtgraph/console/template_pyside2.py
create mode 100644 pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py
create mode 100644 pyqtgraph/flowchart/FlowchartTemplate_pyside2.py
create mode 100644 pyqtgraph/graphicsItems/PlotItem/plotConfigTemplate_pyside2.py
create mode 100644 pyqtgraph/graphicsItems/ViewBox/axisCtrlTemplate_pyside2.py
create mode 100644 pyqtgraph/imageview/ImageViewTemplate_pyside2.py
diff --git a/examples/ScatterPlotSpeedTest.py b/examples/ScatterPlotSpeedTest.py
index 9cbf0c63..cc6818cb 100644
--- a/examples/ScatterPlotSpeedTest.py
+++ b/examples/ScatterPlotSpeedTest.py
@@ -12,7 +12,7 @@ For testing rapid updates of ScatterPlotItem under various conditions.
import initExample
-from pyqtgraph.Qt import QtGui, QtCore, USE_PYSIDE, USE_PYQT5
+from pyqtgraph.Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
import numpy as np
import pyqtgraph as pg
from pyqtgraph.ptime import time
@@ -22,6 +22,8 @@ app = QtGui.QApplication([])
#mw.resize(800,800)
if USE_PYSIDE:
from ScatterPlotSpeedTestTemplate_pyside import Ui_Form
+elif USE_PYSIDE2:
+ from ScatterPlotSpeedTestTemplate_pyside2 import Ui_Form
elif USE_PYQT5:
from ScatterPlotSpeedTestTemplate_pyqt5 import Ui_Form
else:
diff --git a/examples/VideoSpeedTest.py b/examples/VideoSpeedTest.py
index 3516472f..e0150f22 100644
--- a/examples/VideoSpeedTest.py
+++ b/examples/VideoSpeedTest.py
@@ -10,13 +10,15 @@ is used by the view widget
import initExample ## Add path to library (just for examples; you do not need this)
-from pyqtgraph.Qt import QtGui, QtCore, USE_PYSIDE, USE_PYQT5
+from pyqtgraph.Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
import numpy as np
import pyqtgraph as pg
import pyqtgraph.ptime as ptime
if USE_PYSIDE:
import VideoTemplate_pyside as VideoTemplate
+elif USE_PYSIDE2:
+ import VideoTemplate_pyside2 as VideoTemplate
elif USE_PYQT5:
import VideoTemplate_pyqt5 as VideoTemplate
else:
diff --git a/examples/__main__.py b/examples/__main__.py
index 03c41119..8445a21b 100644
--- a/examples/__main__.py
+++ b/examples/__main__.py
@@ -7,13 +7,15 @@ if __name__ == "__main__" and (__package__ is None or __package__==''):
import pyqtgraph as pg
import subprocess
from pyqtgraph.python2_3 import basestring
-from pyqtgraph.Qt import QtGui, USE_PYSIDE, USE_PYQT5
+from pyqtgraph.Qt import QtGui, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
from .utils import buildFileList, testFile, path, examples
if USE_PYSIDE:
from .exampleLoaderTemplate_pyside import Ui_Form
+elif USE_PYSIDE2:
+ from .exampleLoaderTemplate_pyside2 import Ui_Form
elif USE_PYQT5:
from .exampleLoaderTemplate_pyqt5 import Ui_Form
else:
diff --git a/examples/exampleLoaderTemplate_pyqt.py b/examples/exampleLoaderTemplate_pyqt.py
index 708839f5..6c791e7f 100644
--- a/examples/exampleLoaderTemplate_pyqt.py
+++ b/examples/exampleLoaderTemplate_pyqt.py
@@ -7,7 +7,8 @@
#
# WARNING! All changes made in this file will be lost!
-from PyQt4 import QtCore, QtGui
+#from PyQt4 import QtCore, QtGui
+from pyqtgraph.Qt import QtGui, QtCore
try:
_fromUtf8 = QtCore.QString.fromUtf8
diff --git a/examples/exampleLoaderTemplate_pyside2.py b/examples/exampleLoaderTemplate_pyside2.py
new file mode 100644
index 00000000..0928e651
--- /dev/null
+++ b/examples/exampleLoaderTemplate_pyside2.py
@@ -0,0 +1,93 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'exampleLoaderTemplate.ui'
+#
+# Created: Sat Feb 28 10:28:50 2015
+# by: PyQt5 UI code generator 5.2.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(846, 552)
+ self.gridLayout_2 = QtWidgets.QGridLayout(Form)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Horizontal)
+ self.splitter.setObjectName("splitter")
+ self.widget = QtWidgets.QWidget(self.splitter)
+ self.widget.setObjectName("widget")
+ self.gridLayout = QtWidgets.QGridLayout(self.widget)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.exampleTree = QtWidgets.QTreeWidget(self.widget)
+ self.exampleTree.setObjectName("exampleTree")
+ self.exampleTree.headerItem().setText(0, "1")
+ self.exampleTree.header().setVisible(False)
+ self.gridLayout.addWidget(self.exampleTree, 0, 0, 1, 2)
+ self.graphicsSystemCombo = QtWidgets.QComboBox(self.widget)
+ self.graphicsSystemCombo.setObjectName("graphicsSystemCombo")
+ self.graphicsSystemCombo.addItem("")
+ self.graphicsSystemCombo.addItem("")
+ self.graphicsSystemCombo.addItem("")
+ self.graphicsSystemCombo.addItem("")
+ self.gridLayout.addWidget(self.graphicsSystemCombo, 2, 1, 1, 1)
+ self.qtLibCombo = QtWidgets.QComboBox(self.widget)
+ self.qtLibCombo.setObjectName("qtLibCombo")
+ self.qtLibCombo.addItem("")
+ self.qtLibCombo.addItem("")
+ self.qtLibCombo.addItem("")
+ self.qtLibCombo.addItem("")
+ self.gridLayout.addWidget(self.qtLibCombo, 1, 1, 1, 1)
+ self.label_2 = QtWidgets.QLabel(self.widget)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
+ self.label = QtWidgets.QLabel(self.widget)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
+ self.loadBtn = QtWidgets.QPushButton(self.widget)
+ self.loadBtn.setObjectName("loadBtn")
+ self.gridLayout.addWidget(self.loadBtn, 3, 1, 1, 1)
+ self.widget1 = QtWidgets.QWidget(self.splitter)
+ self.widget1.setObjectName("widget1")
+ self.verticalLayout = QtWidgets.QVBoxLayout(self.widget1)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.loadedFileLabel = QtWidgets.QLabel(self.widget1)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.loadedFileLabel.setFont(font)
+ self.loadedFileLabel.setText("")
+ self.loadedFileLabel.setAlignment(QtCore.Qt.AlignCenter)
+ self.loadedFileLabel.setObjectName("loadedFileLabel")
+ self.verticalLayout.addWidget(self.loadedFileLabel)
+ self.codeView = QtWidgets.QPlainTextEdit(self.widget1)
+ font = QtGui.QFont()
+ font.setFamily("FreeMono")
+ self.codeView.setFont(font)
+ self.codeView.setObjectName("codeView")
+ self.verticalLayout.addWidget(self.codeView)
+ self.gridLayout_2.addWidget(self.splitter, 0, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.graphicsSystemCombo.setItemText(0, _translate("Form", "default"))
+ self.graphicsSystemCombo.setItemText(1, _translate("Form", "native"))
+ self.graphicsSystemCombo.setItemText(2, _translate("Form", "raster"))
+ self.graphicsSystemCombo.setItemText(3, _translate("Form", "opengl"))
+ self.qtLibCombo.setItemText(0, _translate("Form", "default"))
+ self.qtLibCombo.setItemText(1, _translate("Form", "PyQt4"))
+ self.qtLibCombo.setItemText(2, _translate("Form", "PySide"))
+ self.qtLibCombo.setItemText(3, _translate("Form", "PyQt5"))
+ self.label_2.setText(_translate("Form", "Graphics System:"))
+ self.label.setText(_translate("Form", "Qt Library:"))
+ self.loadBtn.setText(_translate("Form", "Run Example"))
+
diff --git a/pyqtgraph/GraphicsScene/exportDialog.py b/pyqtgraph/GraphicsScene/exportDialog.py
index 2676a3b4..083cf542 100644
--- a/pyqtgraph/GraphicsScene/exportDialog.py
+++ b/pyqtgraph/GraphicsScene/exportDialog.py
@@ -1,4 +1,4 @@
-from ..Qt import QtCore, QtGui, USE_PYSIDE, USE_PYQT5
+from ..Qt import QtCore, QtGui, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
from .. import exporters as exporters
from .. import functions as fn
from ..graphicsItems.ViewBox import ViewBox
@@ -6,6 +6,8 @@ from ..graphicsItems.PlotItem import PlotItem
if USE_PYSIDE:
from . import exportDialogTemplate_pyside as exportDialogTemplate
+elif USE_PYSIDE2:
+ from . import exportDialogTemplate_pyside2 as exportDialogTemplate
elif USE_PYQT5:
from . import exportDialogTemplate_pyqt5 as exportDialogTemplate
else:
diff --git a/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py b/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py
new file mode 100644
index 00000000..65a1386b
--- /dev/null
+++ b/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/GraphicsScene/exportDialogTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:29 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(241, 367)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.label = QtWidgets.QLabel(Form)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 3)
+ self.itemTree = QtWidgets.QTreeWidget(Form)
+ self.itemTree.setObjectName("itemTree")
+ self.itemTree.headerItem().setText(0, "1")
+ self.itemTree.header().setVisible(False)
+ self.gridLayout.addWidget(self.itemTree, 1, 0, 1, 3)
+ self.label_2 = QtWidgets.QLabel(Form)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 2, 0, 1, 3)
+ self.formatList = QtWidgets.QListWidget(Form)
+ self.formatList.setObjectName("formatList")
+ self.gridLayout.addWidget(self.formatList, 3, 0, 1, 3)
+ self.exportBtn = QtWidgets.QPushButton(Form)
+ self.exportBtn.setObjectName("exportBtn")
+ self.gridLayout.addWidget(self.exportBtn, 6, 1, 1, 1)
+ self.closeBtn = QtWidgets.QPushButton(Form)
+ self.closeBtn.setObjectName("closeBtn")
+ self.gridLayout.addWidget(self.closeBtn, 6, 2, 1, 1)
+ self.paramTree = ParameterTree(Form)
+ self.paramTree.setObjectName("paramTree")
+ self.paramTree.headerItem().setText(0, "1")
+ self.paramTree.header().setVisible(False)
+ self.gridLayout.addWidget(self.paramTree, 5, 0, 1, 3)
+ self.label_3 = QtWidgets.QLabel(Form)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout.addWidget(self.label_3, 4, 0, 1, 3)
+ self.copyBtn = QtWidgets.QPushButton(Form)
+ self.copyBtn.setObjectName("copyBtn")
+ self.gridLayout.addWidget(self.copyBtn, 6, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Export"))
+ self.label.setText(_translate("Form", "Item to export:"))
+ self.label_2.setText(_translate("Form", "Export format"))
+ self.exportBtn.setText(_translate("Form", "Export"))
+ self.closeBtn.setText(_translate("Form", "Close"))
+ self.label_3.setText(_translate("Form", "Export options"))
+ self.copyBtn.setText(_translate("Form", "Copy"))
+
+from ..parametertree import ParameterTree
diff --git a/pyqtgraph/Qt.py b/pyqtgraph/Qt.py
index 2ed9d6f9..59beb67d 100644
--- a/pyqtgraph/Qt.py
+++ b/pyqtgraph/Qt.py
@@ -14,6 +14,7 @@ import os, sys, re, time
from .python2_3 import asUnicode
PYSIDE = 'PySide'
+PYSIDE2 = 'PySide2'
PYQT4 = 'PyQt4'
PYQT5 = 'PyQt5'
@@ -24,7 +25,7 @@ QT_LIB = os.getenv('PYQTGRAPH_QT_LIB')
## This is done by first checking to see whether one of the libraries
## is already imported. If not, then attempt to import PyQt4, then PySide.
if QT_LIB is None:
- libOrder = [PYQT4, PYSIDE, PYQT5]
+ libOrder = [PYQT4, PYSIDE, PYQT5, PYSIDE2]
for lib in libOrder:
if lib in sys.modules:
@@ -43,43 +44,141 @@ if QT_LIB is None:
if QT_LIB is None:
raise Exception("PyQtGraph requires one of PyQt4, PyQt5 or PySide; none of these packages could be imported.")
-if QT_LIB == PYSIDE:
- from PySide import QtGui, QtCore, QtOpenGL, QtSvg
- try:
- from PySide import QtTest
- if not hasattr(QtTest.QTest, 'qWait'):
- @staticmethod
- def qWait(msec):
- start = time.time()
- QtGui.QApplication.processEvents()
- while time.time() < start + msec * 0.001:
+if QT_LIB == PYSIDE or QT_LIB == PYSIDE2 :
+ if QT_LIB == PYSIDE:
+ from PySide import QtGui, QtCore, QtOpenGL, QtSvg
+ try:
+ from PySide import QtTest
+ if not hasattr(QtTest.QTest, 'qWait'):
+ @staticmethod
+ def qWait(msec):
+ start = time.time()
QtGui.QApplication.processEvents()
- QtTest.QTest.qWait = qWait
-
- except ImportError:
- pass
- import PySide
- try:
- from PySide import shiboken
- isQObjectAlive = shiboken.isValid
- except ImportError:
- def isQObjectAlive(obj):
- try:
- if hasattr(obj, 'parent'):
- obj.parent()
- elif hasattr(obj, 'parentItem'):
- obj.parentItem()
+ while time.time() < start + msec * 0.001:
+ QtGui.QApplication.processEvents()
+ QtTest.QTest.qWait = qWait
+
+ except ImportError:
+ pass
+ import PySide
+ try:
+ from PySide import shiboken
+ isQObjectAlive = shiboken.isValid
+ except ImportError:
+ def isQObjectAlive(obj):
+ try:
+ if hasattr(obj, 'parent'):
+ obj.parent()
+ elif hasattr(obj, 'parentItem'):
+ obj.parentItem()
+ else:
+ raise Exception("Cannot determine whether Qt object %s is still alive." % obj)
+ except RuntimeError:
+ return False
else:
- raise Exception("Cannot determine whether Qt object %s is still alive." % obj)
- except RuntimeError:
- return False
+ return True
+
+ VERSION_INFO = 'PySide ' + PySide.__version__
+
+ elif QT_LIB == PYSIDE2:
+ # QtOpenGL, QtSvg is not working for PySide2, see https://wiki.qt.io/PySide2
+ #from PySide2 import QtGui, QtCore, QtOpenGL, QtSvg, QtWidgets
+ from PySide2 import QtGui, QtCore, QtWidgets
+
+ try:
+ from PySide2 import QtSvg
+ except ImportError:
+ pass
+
+ try:
+ from PySide2 import QtOpenGL
+ except ImportError:
+ pass
+
+ try:
+ from PySide2 import QtTest
+ if not hasattr(QtTest.QTest, 'qWait'):
+ @staticmethod
+ def qWait(msec):
+ start = time.time()
+ QtWidgets.QApplication.processEvents()
+ while time.time() < start + msec * 0.001:
+ QtWidgets.QApplication.processEvents()
+ QtTest.QTest.qWait = qWait
+ except ImportError:
+ pass
+
+ import PySide2
+ try:
+ from PySide2 import shiboken2
+ isQObjectAlive = shiboken2.isValid
+ except ImportError:
+ def isQObjectAlive(obj):
+ try:
+ if hasattr(obj, 'parent'):
+ obj.parent()
+ elif hasattr(obj, 'parentItem'):
+ obj.parentItem()
+ else:
+ raise Exception("Cannot determine whether Qt object %s is still alive." % obj)
+ except RuntimeError:
+ return False
+ else:
+ return True
+
+ # Re-implement deprecated APIs
+ __QGraphicsItem_scale = QtWidgets.QGraphicsItem.scale
+ def scale(self, *args):
+ if args:
+ sx, sy = args
+ tr = self.transform()
+ tr.scale(sx, sy)
+ self.setTransform(tr)
else:
- return True
-
- VERSION_INFO = 'PySide ' + PySide.__version__
-
+ return __QGraphicsItem_scale(self)
+
+ QtWidgets.QGraphicsItem.scale = scale
+
+ def rotate(self, angle):
+ tr = self.transform()
+ tr.rotate(angle)
+ self.setTransform(tr)
+ QtWidgets.QGraphicsItem.rotate = rotate
+
+ def translate(self, dx, dy):
+ tr = self.transform()
+ tr.translate(dx, dy)
+ self.setTransform(tr)
+ QtWidgets.QGraphicsItem.translate = translate
+
+ def setMargin(self, i):
+ self.setContentsMargins(i, i, i, i)
+ QtWidgets.QGridLayout.setMargin = setMargin
+
+ def setResizeMode(self, *args):
+ self.setSectionResizeMode(*args)
+ QtWidgets.QHeaderView.setResizeMode = setResizeMode
+
+
+ QtGui.QApplication = QtWidgets.QApplication
+ QtGui.QGraphicsScene = QtWidgets.QGraphicsScene
+ QtGui.QGraphicsObject = QtWidgets.QGraphicsObject
+ QtGui.QGraphicsWidget = QtWidgets.QGraphicsWidget
+
+ QtGui.QApplication.setGraphicsSystem = None
+
+ # Import all QtWidgets objects into QtGui
+ for o in dir(QtWidgets):
+ if o.startswith('Q'):
+ setattr(QtGui, o, getattr(QtWidgets,o) )
+
+ VERSION_INFO = 'PySide2 ' + PySide2.__version__
+
+ #
+ # Commons to PySide and PySide2
+ #
+
# Make a loadUiType function like PyQt has
-
# Credit:
# http://stackoverflow.com/questions/4442286/python-code-genration-with-pyside-uic/14195313#14195313
@@ -232,9 +331,16 @@ if QT_LIB.startswith('PyQt'):
## Make sure we have Qt >= 4.7
versionReq = [4, 7]
USE_PYSIDE = QT_LIB == PYSIDE
+USE_PYSIDE2 = QT_LIB == PYSIDE2
USE_PYQT4 = QT_LIB == PYQT4
USE_PYQT5 = QT_LIB == PYQT5
-QtVersion = PySide.QtCore.__version__ if QT_LIB == PYSIDE else QtCore.QT_VERSION_STR
+if QT_LIB == PYSIDE:
+ QtVersion = PySide.QtCore.__version__
+elif QT_LIB == PYSIDE2:
+ QtVersion = PySide2.QtCore.__version__
+else:
+ QtCore.QT_VERSION_STR
+
m = re.match(r'(\d+)\.(\d+).*', QtVersion)
if m is not None and list(map(int, m.groups())) < versionReq:
print(list(map(int, m.groups())))
diff --git a/pyqtgraph/canvas/Canvas.py b/pyqtgraph/canvas/Canvas.py
index 4de891f7..b73382d4 100644
--- a/pyqtgraph/canvas/Canvas.py
+++ b/pyqtgraph/canvas/Canvas.py
@@ -4,13 +4,17 @@ if __name__ == '__main__':
md = os.path.dirname(os.path.abspath(__file__))
sys.path = [os.path.dirname(md), os.path.join(md, '..', '..', '..')] + sys.path
-from ..Qt import QtGui, QtCore, USE_PYSIDE
+from ..Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
from ..graphicsItems.ROI import ROI
from ..graphicsItems.ViewBox import ViewBox
from ..graphicsItems.GridItem import GridItem
if USE_PYSIDE:
from .CanvasTemplate_pyside import *
+elif USE_PYSIDE2:
+ from .CanvasTemplate_pyside2 import *
+elif USE_QT5:
+ from .CanvasTemplate_pyqt5 import *
else:
from .CanvasTemplate_pyqt import *
diff --git a/pyqtgraph/canvas/CanvasItem.py b/pyqtgraph/canvas/CanvasItem.py
index b6ecbb39..15f13649 100644
--- a/pyqtgraph/canvas/CanvasItem.py
+++ b/pyqtgraph/canvas/CanvasItem.py
@@ -1,9 +1,13 @@
# -*- coding: utf-8 -*-
-from ..Qt import QtGui, QtCore, QtSvg, USE_PYSIDE
+from ..Qt import QtGui, QtCore, QtSvg, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
from ..graphicsItems.ROI import ROI
from .. import SRTTransform, ItemGroup
if USE_PYSIDE:
from . import TransformGuiTemplate_pyside as TransformGuiTemplate
+elif USE_PYSIDE2:
+ from . import TransformGuiTemplate_pyside2 as TransformGuiTemplate
+elif USE_PYQT5:
+ from . import TransformGuiTemplate_pyqt5 as TransformGuiTemplate
else:
from . import TransformGuiTemplate_pyqt as TransformGuiTemplate
diff --git a/pyqtgraph/canvas/CanvasTemplate_pyside2.py b/pyqtgraph/canvas/CanvasTemplate_pyside2.py
new file mode 100644
index 00000000..e17bc5fe
--- /dev/null
+++ b/pyqtgraph/canvas/CanvasTemplate_pyside2.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/canvas/CanvasTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:28 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(490, 414)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Horizontal)
+ self.splitter.setObjectName("splitter")
+ self.view = GraphicsView(self.splitter)
+ self.view.setObjectName("view")
+ self.layoutWidget = QtWidgets.QWidget(self.splitter)
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.layoutWidget)
+ self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.storeSvgBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.storeSvgBtn.setObjectName("storeSvgBtn")
+ self.gridLayout_2.addWidget(self.storeSvgBtn, 1, 0, 1, 1)
+ self.storePngBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.storePngBtn.setObjectName("storePngBtn")
+ self.gridLayout_2.addWidget(self.storePngBtn, 1, 1, 1, 1)
+ self.autoRangeBtn = QtWidgets.QPushButton(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(1)
+ sizePolicy.setHeightForWidth(self.autoRangeBtn.sizePolicy().hasHeightForWidth())
+ self.autoRangeBtn.setSizePolicy(sizePolicy)
+ self.autoRangeBtn.setObjectName("autoRangeBtn")
+ self.gridLayout_2.addWidget(self.autoRangeBtn, 3, 0, 1, 2)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setSpacing(0)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.redirectCheck = QtWidgets.QCheckBox(self.layoutWidget)
+ self.redirectCheck.setObjectName("redirectCheck")
+ self.horizontalLayout.addWidget(self.redirectCheck)
+ self.redirectCombo = CanvasCombo(self.layoutWidget)
+ self.redirectCombo.setObjectName("redirectCombo")
+ self.horizontalLayout.addWidget(self.redirectCombo)
+ self.gridLayout_2.addLayout(self.horizontalLayout, 6, 0, 1, 2)
+ self.itemList = TreeWidget(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(100)
+ sizePolicy.setHeightForWidth(self.itemList.sizePolicy().hasHeightForWidth())
+ self.itemList.setSizePolicy(sizePolicy)
+ self.itemList.setHeaderHidden(True)
+ self.itemList.setObjectName("itemList")
+ self.itemList.headerItem().setText(0, "1")
+ self.gridLayout_2.addWidget(self.itemList, 7, 0, 1, 2)
+ self.ctrlLayout = QtWidgets.QGridLayout()
+ self.ctrlLayout.setSpacing(0)
+ self.ctrlLayout.setObjectName("ctrlLayout")
+ self.gridLayout_2.addLayout(self.ctrlLayout, 11, 0, 1, 2)
+ self.resetTransformsBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.resetTransformsBtn.setObjectName("resetTransformsBtn")
+ self.gridLayout_2.addWidget(self.resetTransformsBtn, 8, 0, 1, 1)
+ self.mirrorSelectionBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.mirrorSelectionBtn.setObjectName("mirrorSelectionBtn")
+ self.gridLayout_2.addWidget(self.mirrorSelectionBtn, 4, 0, 1, 1)
+ self.reflectSelectionBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.reflectSelectionBtn.setObjectName("reflectSelectionBtn")
+ self.gridLayout_2.addWidget(self.reflectSelectionBtn, 4, 1, 1, 1)
+ self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.storeSvgBtn.setText(_translate("Form", "Store SVG"))
+ self.storePngBtn.setText(_translate("Form", "Store PNG"))
+ self.autoRangeBtn.setText(_translate("Form", "Auto Range"))
+ self.redirectCheck.setToolTip(_translate("Form", "Check to display all local items in a remote canvas."))
+ self.redirectCheck.setText(_translate("Form", "Redirect"))
+ self.resetTransformsBtn.setText(_translate("Form", "Reset Transforms"))
+ self.mirrorSelectionBtn.setText(_translate("Form", "Mirror Selection"))
+ self.reflectSelectionBtn.setText(_translate("Form", "MirrorXY"))
+
+from ..widgets.GraphicsView import GraphicsView
+from ..widgets.TreeWidget import TreeWidget
+from CanvasManager import CanvasCombo
diff --git a/pyqtgraph/canvas/TransformGuiTemplate_pyside2.py b/pyqtgraph/canvas/TransformGuiTemplate_pyside2.py
new file mode 100644
index 00000000..253a40d7
--- /dev/null
+++ b/pyqtgraph/canvas/TransformGuiTemplate_pyside2.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/canvas/TransformGuiTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:28 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(224, 117)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
+ Form.setSizePolicy(sizePolicy)
+ self.verticalLayout = QtWidgets.QVBoxLayout(Form)
+ self.verticalLayout.setSpacing(1)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.translateLabel = QtWidgets.QLabel(Form)
+ self.translateLabel.setObjectName("translateLabel")
+ self.verticalLayout.addWidget(self.translateLabel)
+ self.rotateLabel = QtWidgets.QLabel(Form)
+ self.rotateLabel.setObjectName("rotateLabel")
+ self.verticalLayout.addWidget(self.rotateLabel)
+ self.scaleLabel = QtWidgets.QLabel(Form)
+ self.scaleLabel.setObjectName("scaleLabel")
+ self.verticalLayout.addWidget(self.scaleLabel)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.mirrorImageBtn = QtWidgets.QPushButton(Form)
+ self.mirrorImageBtn.setToolTip("")
+ self.mirrorImageBtn.setObjectName("mirrorImageBtn")
+ self.horizontalLayout.addWidget(self.mirrorImageBtn)
+ self.reflectImageBtn = QtWidgets.QPushButton(Form)
+ self.reflectImageBtn.setObjectName("reflectImageBtn")
+ self.horizontalLayout.addWidget(self.reflectImageBtn)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.translateLabel.setText(_translate("Form", "Translate:"))
+ self.rotateLabel.setText(_translate("Form", "Rotate:"))
+ self.scaleLabel.setText(_translate("Form", "Scale:"))
+ self.mirrorImageBtn.setText(_translate("Form", "Mirror"))
+ self.reflectImageBtn.setText(_translate("Form", "Reflect"))
+
diff --git a/pyqtgraph/console/Console.py b/pyqtgraph/console/Console.py
index ed4b7f08..cfc2904b 100644
--- a/pyqtgraph/console/Console.py
+++ b/pyqtgraph/console/Console.py
@@ -1,12 +1,14 @@
import sys, re, os, time, traceback, subprocess
import pickle
-from ..Qt import QtCore, QtGui, USE_PYSIDE, USE_PYQT5
+from ..Qt import QtCore, QtGui, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
from ..python2_3 import basestring
from .. import exceptionHandling as exceptionHandling
from .. import getConfigOption
if USE_PYSIDE:
from . import template_pyside as template
+elif USE_PYSIDE2:
+ from . import template_pyside2 as template
elif USE_PYQT5:
from . import template_pyqt5 as template
else:
diff --git a/pyqtgraph/console/template_pyside2.py b/pyqtgraph/console/template_pyside2.py
new file mode 100644
index 00000000..c82354a2
--- /dev/null
+++ b/pyqtgraph/console/template_pyside2.py
@@ -0,0 +1,107 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/console/template.ui'
+#
+# Created: Wed Mar 26 15:09:29 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(710, 497)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Vertical)
+ self.splitter.setObjectName("splitter")
+ self.layoutWidget = QtWidgets.QWidget(self.splitter)
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.output = QtWidgets.QPlainTextEdit(self.layoutWidget)
+ font = QtGui.QFont()
+ font.setFamily("Monospace")
+ self.output.setFont(font)
+ self.output.setReadOnly(True)
+ self.output.setObjectName("output")
+ self.verticalLayout.addWidget(self.output)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.input = CmdInput(self.layoutWidget)
+ self.input.setObjectName("input")
+ self.horizontalLayout.addWidget(self.input)
+ self.historyBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.historyBtn.setCheckable(True)
+ self.historyBtn.setObjectName("historyBtn")
+ self.horizontalLayout.addWidget(self.historyBtn)
+ self.exceptionBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.exceptionBtn.setCheckable(True)
+ self.exceptionBtn.setObjectName("exceptionBtn")
+ self.horizontalLayout.addWidget(self.exceptionBtn)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.historyList = QtWidgets.QListWidget(self.splitter)
+ font = QtGui.QFont()
+ font.setFamily("Monospace")
+ self.historyList.setFont(font)
+ self.historyList.setObjectName("historyList")
+ self.exceptionGroup = QtWidgets.QGroupBox(self.splitter)
+ self.exceptionGroup.setObjectName("exceptionGroup")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.exceptionGroup)
+ self.gridLayout_2.setSpacing(0)
+ self.gridLayout_2.setContentsMargins(-1, 0, -1, 0)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.catchAllExceptionsBtn = QtWidgets.QPushButton(self.exceptionGroup)
+ self.catchAllExceptionsBtn.setCheckable(True)
+ self.catchAllExceptionsBtn.setObjectName("catchAllExceptionsBtn")
+ self.gridLayout_2.addWidget(self.catchAllExceptionsBtn, 0, 1, 1, 1)
+ self.catchNextExceptionBtn = QtWidgets.QPushButton(self.exceptionGroup)
+ self.catchNextExceptionBtn.setCheckable(True)
+ self.catchNextExceptionBtn.setObjectName("catchNextExceptionBtn")
+ self.gridLayout_2.addWidget(self.catchNextExceptionBtn, 0, 0, 1, 1)
+ self.onlyUncaughtCheck = QtWidgets.QCheckBox(self.exceptionGroup)
+ self.onlyUncaughtCheck.setChecked(True)
+ self.onlyUncaughtCheck.setObjectName("onlyUncaughtCheck")
+ self.gridLayout_2.addWidget(self.onlyUncaughtCheck, 0, 2, 1, 1)
+ self.exceptionStackList = QtWidgets.QListWidget(self.exceptionGroup)
+ self.exceptionStackList.setAlternatingRowColors(True)
+ self.exceptionStackList.setObjectName("exceptionStackList")
+ self.gridLayout_2.addWidget(self.exceptionStackList, 2, 0, 1, 5)
+ self.runSelectedFrameCheck = QtWidgets.QCheckBox(self.exceptionGroup)
+ self.runSelectedFrameCheck.setChecked(True)
+ self.runSelectedFrameCheck.setObjectName("runSelectedFrameCheck")
+ self.gridLayout_2.addWidget(self.runSelectedFrameCheck, 3, 0, 1, 5)
+ self.exceptionInfoLabel = QtWidgets.QLabel(self.exceptionGroup)
+ self.exceptionInfoLabel.setObjectName("exceptionInfoLabel")
+ self.gridLayout_2.addWidget(self.exceptionInfoLabel, 1, 0, 1, 5)
+ self.clearExceptionBtn = QtWidgets.QPushButton(self.exceptionGroup)
+ self.clearExceptionBtn.setEnabled(False)
+ self.clearExceptionBtn.setObjectName("clearExceptionBtn")
+ self.gridLayout_2.addWidget(self.clearExceptionBtn, 0, 4, 1, 1)
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.gridLayout_2.addItem(spacerItem, 0, 3, 1, 1)
+ self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Console"))
+ self.historyBtn.setText(_translate("Form", "History.."))
+ self.exceptionBtn.setText(_translate("Form", "Exceptions.."))
+ self.exceptionGroup.setTitle(_translate("Form", "Exception Handling"))
+ self.catchAllExceptionsBtn.setText(_translate("Form", "Show All Exceptions"))
+ self.catchNextExceptionBtn.setText(_translate("Form", "Show Next Exception"))
+ self.onlyUncaughtCheck.setText(_translate("Form", "Only Uncaught Exceptions"))
+ self.runSelectedFrameCheck.setText(_translate("Form", "Run commands in selected stack frame"))
+ self.exceptionInfoLabel.setText(_translate("Form", "Exception Info"))
+ self.clearExceptionBtn.setText(_translate("Form", "Clear Exception"))
+
+from .CmdInput import CmdInput
diff --git a/pyqtgraph/flowchart/Flowchart.py b/pyqtgraph/flowchart/Flowchart.py
index b623f5c7..402f5c60 100644
--- a/pyqtgraph/flowchart/Flowchart.py
+++ b/pyqtgraph/flowchart/Flowchart.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from ..Qt import QtCore, QtGui, USE_PYSIDE, USE_PYQT5
+from ..Qt import QtCore, QtGui, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
from .Node import *
from ..pgcollections import OrderedDict
from ..widgets.TreeWidget import *
@@ -9,6 +9,9 @@ from .. import FileDialog, DataTreeWidget
if USE_PYSIDE:
from . import FlowchartTemplate_pyside as FlowchartTemplate
from . import FlowchartCtrlTemplate_pyside as FlowchartCtrlTemplate
+elif USE_PYSIDE2:
+ from . import FlowchartTemplate_pyside2 as FlowchartTemplate
+ from . import FlowchartCtrlTemplate_pyside2 as FlowchartCtrlTemplate
elif USE_PYQT5:
from . import FlowchartTemplate_pyqt5 as FlowchartTemplate
from . import FlowchartCtrlTemplate_pyqt5 as FlowchartCtrlTemplate
diff --git a/pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py b/pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py
new file mode 100644
index 00000000..84593c8a
--- /dev/null
+++ b/pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/flowchart/FlowchartCtrlTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:28 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(217, 499)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setVerticalSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.loadBtn = QtWidgets.QPushButton(Form)
+ self.loadBtn.setObjectName("loadBtn")
+ self.gridLayout.addWidget(self.loadBtn, 1, 0, 1, 1)
+ self.saveBtn = FeedbackButton(Form)
+ self.saveBtn.setObjectName("saveBtn")
+ self.gridLayout.addWidget(self.saveBtn, 1, 1, 1, 2)
+ self.saveAsBtn = FeedbackButton(Form)
+ self.saveAsBtn.setObjectName("saveAsBtn")
+ self.gridLayout.addWidget(self.saveAsBtn, 1, 3, 1, 1)
+ self.reloadBtn = FeedbackButton(Form)
+ self.reloadBtn.setCheckable(False)
+ self.reloadBtn.setFlat(False)
+ self.reloadBtn.setObjectName("reloadBtn")
+ self.gridLayout.addWidget(self.reloadBtn, 4, 0, 1, 2)
+ self.showChartBtn = QtWidgets.QPushButton(Form)
+ self.showChartBtn.setCheckable(True)
+ self.showChartBtn.setObjectName("showChartBtn")
+ self.gridLayout.addWidget(self.showChartBtn, 4, 2, 1, 2)
+ self.ctrlList = TreeWidget(Form)
+ self.ctrlList.setObjectName("ctrlList")
+ self.ctrlList.headerItem().setText(0, "1")
+ self.ctrlList.header().setVisible(False)
+ self.ctrlList.header().setStretchLastSection(False)
+ self.gridLayout.addWidget(self.ctrlList, 3, 0, 1, 4)
+ self.fileNameLabel = QtWidgets.QLabel(Form)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.fileNameLabel.setFont(font)
+ self.fileNameLabel.setText("")
+ self.fileNameLabel.setAlignment(QtCore.Qt.AlignCenter)
+ self.fileNameLabel.setObjectName("fileNameLabel")
+ self.gridLayout.addWidget(self.fileNameLabel, 0, 1, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.loadBtn.setText(_translate("Form", "Load.."))
+ self.saveBtn.setText(_translate("Form", "Save"))
+ self.saveAsBtn.setText(_translate("Form", "As.."))
+ self.reloadBtn.setText(_translate("Form", "Reload Libs"))
+ self.showChartBtn.setText(_translate("Form", "Flowchart"))
+
+from ..widgets.FeedbackButton import FeedbackButton
+from ..widgets.TreeWidget import TreeWidget
diff --git a/pyqtgraph/flowchart/FlowchartTemplate_pyside2.py b/pyqtgraph/flowchart/FlowchartTemplate_pyside2.py
new file mode 100644
index 00000000..ae2c9a92
--- /dev/null
+++ b/pyqtgraph/flowchart/FlowchartTemplate_pyside2.py
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/flowchart/FlowchartTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:28 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(529, 329)
+ self.selInfoWidget = QtWidgets.QWidget(Form)
+ self.selInfoWidget.setGeometry(QtCore.QRect(260, 10, 264, 222))
+ self.selInfoWidget.setObjectName("selInfoWidget")
+ self.gridLayout = QtWidgets.QGridLayout(self.selInfoWidget)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.selDescLabel = QtWidgets.QLabel(self.selInfoWidget)
+ self.selDescLabel.setText("")
+ self.selDescLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
+ self.selDescLabel.setWordWrap(True)
+ self.selDescLabel.setObjectName("selDescLabel")
+ self.gridLayout.addWidget(self.selDescLabel, 0, 0, 1, 1)
+ self.selNameLabel = QtWidgets.QLabel(self.selInfoWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.selNameLabel.setFont(font)
+ self.selNameLabel.setText("")
+ self.selNameLabel.setObjectName("selNameLabel")
+ self.gridLayout.addWidget(self.selNameLabel, 0, 1, 1, 1)
+ self.selectedTree = DataTreeWidget(self.selInfoWidget)
+ self.selectedTree.setObjectName("selectedTree")
+ self.selectedTree.headerItem().setText(0, "1")
+ self.gridLayout.addWidget(self.selectedTree, 1, 0, 1, 2)
+ self.hoverText = QtWidgets.QTextEdit(Form)
+ self.hoverText.setGeometry(QtCore.QRect(0, 240, 521, 81))
+ self.hoverText.setObjectName("hoverText")
+ self.view = FlowchartGraphicsView(Form)
+ self.view.setGeometry(QtCore.QRect(0, 0, 256, 192))
+ self.view.setObjectName("view")
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+
+from ..widgets.DataTreeWidget import DataTreeWidget
+from ..flowchart.FlowchartGraphicsView import FlowchartGraphicsView
diff --git a/pyqtgraph/functions.py b/pyqtgraph/functions.py
index d79c350f..45d48ad7 100644
--- a/pyqtgraph/functions.py
+++ b/pyqtgraph/functions.py
@@ -12,7 +12,7 @@ import decimal, re
import ctypes
import sys, struct
from .python2_3 import asUnicode, basestring
-from .Qt import QtGui, QtCore, USE_PYSIDE
+from .Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2
from . import getConfigOption, setConfigOptions
from . import debug
@@ -1126,7 +1126,7 @@ def makeQImage(imgData, alpha=None, copy=True, transpose=True):
if copy is True and copied is False:
imgData = imgData.copy()
- if USE_PYSIDE:
+ if USE_PYSIDE or USE_PYSIDE2:
ch = ctypes.c_char.from_buffer(imgData, 0)
img = QtGui.QImage(ch, imgData.shape[1], imgData.shape[0], imgFormat)
else:
@@ -1171,7 +1171,7 @@ def imageToArray(img, copy=False, transpose=True):
"""
fmt = img.format()
ptr = img.bits()
- if USE_PYSIDE:
+ if USE_PYSIDE or USE_PYSIDE2:
arr = np.frombuffer(ptr, dtype=np.ubyte)
else:
ptr.setsize(img.byteCount())
diff --git a/pyqtgraph/graphicsItems/FillBetweenItem.py b/pyqtgraph/graphicsItems/FillBetweenItem.py
index 0efb11dd..0a73cb73 100644
--- a/pyqtgraph/graphicsItems/FillBetweenItem.py
+++ b/pyqtgraph/graphicsItems/FillBetweenItem.py
@@ -1,4 +1,4 @@
-from ..Qt import QtGui, USE_PYQT5, USE_PYQT4, USE_PYSIDE
+from ..Qt import QtGui, USE_PYQT5, USE_PYQT4, USE_PYSIDE, USE_PYSIDE2
from .. import functions as fn
from .PlotDataItem import PlotDataItem
from .PlotCurveItem import PlotCurveItem
diff --git a/pyqtgraph/graphicsItems/GraphicsObject.py b/pyqtgraph/graphicsItems/GraphicsObject.py
index 015a78c6..a6b16372 100644
--- a/pyqtgraph/graphicsItems/GraphicsObject.py
+++ b/pyqtgraph/graphicsItems/GraphicsObject.py
@@ -1,5 +1,5 @@
-from ..Qt import QtGui, QtCore, USE_PYSIDE
-if not USE_PYSIDE:
+from ..Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2
+if not USE_PYSIDE and not USE_PYSIDE2:
import sip
from .GraphicsItem import GraphicsItem
@@ -33,7 +33,7 @@ class GraphicsObject(GraphicsItem, QtGui.QGraphicsObject):
## workaround for pyqt bug:
## http://www.riverbankcomputing.com/pipermail/pyqt/2012-August/031818.html
- if not USE_PYSIDE and change == self.ItemParentChange and isinstance(ret, QtGui.QGraphicsItem):
+ if not USE_PYSIDE and not USE_PYSIDE2 and change == self.ItemParentChange and isinstance(ret, QtGui.QGraphicsItem):
ret = sip.cast(ret, QtGui.QGraphicsItem)
return ret
diff --git a/pyqtgraph/graphicsItems/PlotItem/PlotItem.py b/pyqtgraph/graphicsItems/PlotItem/PlotItem.py
index 41011df3..d1f976b5 100644
--- a/pyqtgraph/graphicsItems/PlotItem/PlotItem.py
+++ b/pyqtgraph/graphicsItems/PlotItem/PlotItem.py
@@ -41,6 +41,8 @@ elif QT_LIB == 'PySide':
from .plotConfigTemplate_pyside import *
elif QT_LIB == 'PyQt5':
from .plotConfigTemplate_pyqt5 import *
+elif QT_LIB == 'PySide2':
+ from .plotConfigTemplate_pyside2 import *
__all__ = ['PlotItem']
diff --git a/pyqtgraph/graphicsItems/PlotItem/plotConfigTemplate_pyside2.py b/pyqtgraph/graphicsItems/PlotItem/plotConfigTemplate_pyside2.py
new file mode 100644
index 00000000..d801f298
--- /dev/null
+++ b/pyqtgraph/graphicsItems/PlotItem/plotConfigTemplate_pyside2.py
@@ -0,0 +1,169 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/graphicsItems/PlotItem/plotConfigTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:28 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(481, 840)
+ self.averageGroup = QtWidgets.QGroupBox(Form)
+ self.averageGroup.setGeometry(QtCore.QRect(0, 640, 242, 182))
+ self.averageGroup.setCheckable(True)
+ self.averageGroup.setChecked(False)
+ self.averageGroup.setObjectName("averageGroup")
+ self.gridLayout_5 = QtWidgets.QGridLayout(self.averageGroup)
+ self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_5.setSpacing(0)
+ self.gridLayout_5.setObjectName("gridLayout_5")
+ self.avgParamList = QtWidgets.QListWidget(self.averageGroup)
+ self.avgParamList.setObjectName("avgParamList")
+ self.gridLayout_5.addWidget(self.avgParamList, 0, 0, 1, 1)
+ self.decimateGroup = QtWidgets.QFrame(Form)
+ self.decimateGroup.setGeometry(QtCore.QRect(10, 140, 191, 171))
+ self.decimateGroup.setObjectName("decimateGroup")
+ self.gridLayout_4 = QtWidgets.QGridLayout(self.decimateGroup)
+ self.gridLayout_4.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_4.setSpacing(0)
+ self.gridLayout_4.setObjectName("gridLayout_4")
+ self.clipToViewCheck = QtWidgets.QCheckBox(self.decimateGroup)
+ self.clipToViewCheck.setObjectName("clipToViewCheck")
+ self.gridLayout_4.addWidget(self.clipToViewCheck, 7, 0, 1, 3)
+ self.maxTracesCheck = QtWidgets.QCheckBox(self.decimateGroup)
+ self.maxTracesCheck.setObjectName("maxTracesCheck")
+ self.gridLayout_4.addWidget(self.maxTracesCheck, 8, 0, 1, 2)
+ self.downsampleCheck = QtWidgets.QCheckBox(self.decimateGroup)
+ self.downsampleCheck.setObjectName("downsampleCheck")
+ self.gridLayout_4.addWidget(self.downsampleCheck, 0, 0, 1, 3)
+ self.peakRadio = QtWidgets.QRadioButton(self.decimateGroup)
+ self.peakRadio.setChecked(True)
+ self.peakRadio.setObjectName("peakRadio")
+ self.gridLayout_4.addWidget(self.peakRadio, 6, 1, 1, 2)
+ self.maxTracesSpin = QtWidgets.QSpinBox(self.decimateGroup)
+ self.maxTracesSpin.setObjectName("maxTracesSpin")
+ self.gridLayout_4.addWidget(self.maxTracesSpin, 8, 2, 1, 1)
+ self.forgetTracesCheck = QtWidgets.QCheckBox(self.decimateGroup)
+ self.forgetTracesCheck.setObjectName("forgetTracesCheck")
+ self.gridLayout_4.addWidget(self.forgetTracesCheck, 9, 0, 1, 3)
+ self.meanRadio = QtWidgets.QRadioButton(self.decimateGroup)
+ self.meanRadio.setObjectName("meanRadio")
+ self.gridLayout_4.addWidget(self.meanRadio, 3, 1, 1, 2)
+ self.subsampleRadio = QtWidgets.QRadioButton(self.decimateGroup)
+ self.subsampleRadio.setObjectName("subsampleRadio")
+ self.gridLayout_4.addWidget(self.subsampleRadio, 2, 1, 1, 2)
+ self.autoDownsampleCheck = QtWidgets.QCheckBox(self.decimateGroup)
+ self.autoDownsampleCheck.setChecked(True)
+ self.autoDownsampleCheck.setObjectName("autoDownsampleCheck")
+ self.gridLayout_4.addWidget(self.autoDownsampleCheck, 1, 2, 1, 1)
+ spacerItem = QtWidgets.QSpacerItem(30, 20, QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Minimum)
+ self.gridLayout_4.addItem(spacerItem, 2, 0, 1, 1)
+ self.downsampleSpin = QtWidgets.QSpinBox(self.decimateGroup)
+ self.downsampleSpin.setMinimum(1)
+ self.downsampleSpin.setMaximum(100000)
+ self.downsampleSpin.setProperty("value", 1)
+ self.downsampleSpin.setObjectName("downsampleSpin")
+ self.gridLayout_4.addWidget(self.downsampleSpin, 1, 1, 1, 1)
+ self.transformGroup = QtWidgets.QFrame(Form)
+ self.transformGroup.setGeometry(QtCore.QRect(0, 0, 154, 79))
+ self.transformGroup.setObjectName("transformGroup")
+ self.gridLayout = QtWidgets.QGridLayout(self.transformGroup)
+ self.gridLayout.setObjectName("gridLayout")
+ self.fftCheck = QtWidgets.QCheckBox(self.transformGroup)
+ self.fftCheck.setObjectName("fftCheck")
+ self.gridLayout.addWidget(self.fftCheck, 0, 0, 1, 1)
+ self.logXCheck = QtWidgets.QCheckBox(self.transformGroup)
+ self.logXCheck.setObjectName("logXCheck")
+ self.gridLayout.addWidget(self.logXCheck, 1, 0, 1, 1)
+ self.logYCheck = QtWidgets.QCheckBox(self.transformGroup)
+ self.logYCheck.setObjectName("logYCheck")
+ self.gridLayout.addWidget(self.logYCheck, 2, 0, 1, 1)
+ self.pointsGroup = QtWidgets.QGroupBox(Form)
+ self.pointsGroup.setGeometry(QtCore.QRect(10, 550, 234, 58))
+ self.pointsGroup.setCheckable(True)
+ self.pointsGroup.setObjectName("pointsGroup")
+ self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.pointsGroup)
+ self.verticalLayout_5.setObjectName("verticalLayout_5")
+ self.autoPointsCheck = QtWidgets.QCheckBox(self.pointsGroup)
+ self.autoPointsCheck.setChecked(True)
+ self.autoPointsCheck.setObjectName("autoPointsCheck")
+ self.verticalLayout_5.addWidget(self.autoPointsCheck)
+ self.gridGroup = QtWidgets.QFrame(Form)
+ self.gridGroup.setGeometry(QtCore.QRect(10, 460, 221, 81))
+ self.gridGroup.setObjectName("gridGroup")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.gridGroup)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.xGridCheck = QtWidgets.QCheckBox(self.gridGroup)
+ self.xGridCheck.setObjectName("xGridCheck")
+ self.gridLayout_2.addWidget(self.xGridCheck, 0, 0, 1, 2)
+ self.yGridCheck = QtWidgets.QCheckBox(self.gridGroup)
+ self.yGridCheck.setObjectName("yGridCheck")
+ self.gridLayout_2.addWidget(self.yGridCheck, 1, 0, 1, 2)
+ self.gridAlphaSlider = QtWidgets.QSlider(self.gridGroup)
+ self.gridAlphaSlider.setMaximum(255)
+ self.gridAlphaSlider.setProperty("value", 128)
+ self.gridAlphaSlider.setOrientation(QtCore.Qt.Horizontal)
+ self.gridAlphaSlider.setObjectName("gridAlphaSlider")
+ self.gridLayout_2.addWidget(self.gridAlphaSlider, 2, 1, 1, 1)
+ self.label = QtWidgets.QLabel(self.gridGroup)
+ self.label.setObjectName("label")
+ self.gridLayout_2.addWidget(self.label, 2, 0, 1, 1)
+ self.alphaGroup = QtWidgets.QGroupBox(Form)
+ self.alphaGroup.setGeometry(QtCore.QRect(10, 390, 234, 60))
+ self.alphaGroup.setCheckable(True)
+ self.alphaGroup.setObjectName("alphaGroup")
+ self.horizontalLayout = QtWidgets.QHBoxLayout(self.alphaGroup)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.autoAlphaCheck = QtWidgets.QCheckBox(self.alphaGroup)
+ self.autoAlphaCheck.setChecked(False)
+ self.autoAlphaCheck.setObjectName("autoAlphaCheck")
+ self.horizontalLayout.addWidget(self.autoAlphaCheck)
+ self.alphaSlider = QtWidgets.QSlider(self.alphaGroup)
+ self.alphaSlider.setMaximum(1000)
+ self.alphaSlider.setProperty("value", 1000)
+ self.alphaSlider.setOrientation(QtCore.Qt.Horizontal)
+ self.alphaSlider.setObjectName("alphaSlider")
+ self.horizontalLayout.addWidget(self.alphaSlider)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.averageGroup.setToolTip(_translate("Form", "Display averages of the curves displayed in this plot. The parameter list allows you to choose parameters to average over (if any are available)."))
+ self.averageGroup.setTitle(_translate("Form", "Average"))
+ self.clipToViewCheck.setToolTip(_translate("Form", "Plot only the portion of each curve that is visible. This assumes X values are uniformly spaced."))
+ self.clipToViewCheck.setText(_translate("Form", "Clip to View"))
+ self.maxTracesCheck.setToolTip(_translate("Form", "If multiple curves are displayed in this plot, check this box to limit the number of traces that are displayed."))
+ self.maxTracesCheck.setText(_translate("Form", "Max Traces:"))
+ self.downsampleCheck.setText(_translate("Form", "Downsample"))
+ self.peakRadio.setToolTip(_translate("Form", "Downsample by drawing a saw wave that follows the min and max of the original data. This method produces the best visual representation of the data but is slower."))
+ self.peakRadio.setText(_translate("Form", "Peak"))
+ self.maxTracesSpin.setToolTip(_translate("Form", "If multiple curves are displayed in this plot, check \"Max Traces\" and set this value to limit the number of traces that are displayed."))
+ self.forgetTracesCheck.setToolTip(_translate("Form", "If MaxTraces is checked, remove curves from memory after they are hidden (saves memory, but traces can not be un-hidden)."))
+ self.forgetTracesCheck.setText(_translate("Form", "Forget hidden traces"))
+ self.meanRadio.setToolTip(_translate("Form", "Downsample by taking the mean of N samples."))
+ self.meanRadio.setText(_translate("Form", "Mean"))
+ self.subsampleRadio.setToolTip(_translate("Form", "Downsample by taking the first of N samples. This method is fastest and least accurate."))
+ self.subsampleRadio.setText(_translate("Form", "Subsample"))
+ self.autoDownsampleCheck.setToolTip(_translate("Form", "Automatically downsample data based on the visible range. This assumes X values are uniformly spaced."))
+ self.autoDownsampleCheck.setText(_translate("Form", "Auto"))
+ self.downsampleSpin.setToolTip(_translate("Form", "Downsample data before plotting. (plot every Nth sample)"))
+ self.downsampleSpin.setSuffix(_translate("Form", "x"))
+ self.fftCheck.setText(_translate("Form", "Power Spectrum (FFT)"))
+ self.logXCheck.setText(_translate("Form", "Log X"))
+ self.logYCheck.setText(_translate("Form", "Log Y"))
+ self.pointsGroup.setTitle(_translate("Form", "Points"))
+ self.autoPointsCheck.setText(_translate("Form", "Auto"))
+ self.xGridCheck.setText(_translate("Form", "Show X Grid"))
+ self.yGridCheck.setText(_translate("Form", "Show Y Grid"))
+ self.label.setText(_translate("Form", "Opacity"))
+ self.alphaGroup.setTitle(_translate("Form", "Alpha"))
+ self.autoAlphaCheck.setText(_translate("Form", "Auto"))
+
diff --git a/pyqtgraph/graphicsItems/ScatterPlotItem.py b/pyqtgraph/graphicsItems/ScatterPlotItem.py
index 54667b50..ff9b1b52 100644
--- a/pyqtgraph/graphicsItems/ScatterPlotItem.py
+++ b/pyqtgraph/graphicsItems/ScatterPlotItem.py
@@ -5,7 +5,7 @@ except ImportError:
imap = map
import numpy as np
import weakref
-from ..Qt import QtGui, QtCore, USE_PYSIDE, USE_PYQT5
+from ..Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
from ..Point import Point
from .. import functions as fn
from .GraphicsItem import GraphicsItem
@@ -767,7 +767,7 @@ class ScatterPlotItem(GraphicsObject):
self.data['targetRect'][updateMask] = list(imap(QtCore.QRectF, updatePts[0,:], updatePts[1,:], width, width))
data = self.data[viewMask]
- if USE_PYSIDE or USE_PYQT5:
+ if USE_PYSIDE or USE_PYSIDE2 or USE_PYQT5:
list(imap(p.drawPixmap, data['targetRect'], repeat(atlas), data['sourceRect']))
else:
p.drawPixmapFragments(data['targetRect'].tolist(), data['sourceRect'].tolist(), atlas)
diff --git a/pyqtgraph/graphicsItems/UIGraphicsItem.py b/pyqtgraph/graphicsItems/UIGraphicsItem.py
index 6f756334..f1672eeb 100644
--- a/pyqtgraph/graphicsItems/UIGraphicsItem.py
+++ b/pyqtgraph/graphicsItems/UIGraphicsItem.py
@@ -1,7 +1,7 @@
-from ..Qt import QtGui, QtCore, USE_PYSIDE
+from ..Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2
import weakref
from .GraphicsObject import GraphicsObject
-if not USE_PYSIDE:
+if not USE_PYSIDE and not USE_PYSIDE2:
import sip
__all__ = ['UIGraphicsItem']
@@ -49,7 +49,7 @@ class UIGraphicsItem(GraphicsObject):
## workaround for pyqt bug:
## http://www.riverbankcomputing.com/pipermail/pyqt/2012-August/031818.html
- if not USE_PYSIDE and change == self.ItemParentChange and isinstance(ret, QtGui.QGraphicsItem):
+ if not USE_PYSIDE and not USE_PYSIDE2 and change == self.ItemParentChange and isinstance(ret, QtGui.QGraphicsItem):
ret = sip.cast(ret, QtGui.QGraphicsItem)
if change == self.ItemScenePositionHasChanged:
diff --git a/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py b/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py
index 10392d7e..74a861d0 100644
--- a/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py
+++ b/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py
@@ -8,7 +8,9 @@ elif QT_LIB == 'PySide':
from .axisCtrlTemplate_pyside import Ui_Form as AxisCtrlTemplate
elif QT_LIB == 'PyQt5':
from .axisCtrlTemplate_pyqt5 import Ui_Form as AxisCtrlTemplate
-
+elif QT_LIB == 'PySide2':
+ from .axisCtrlTemplate_pyside2 import Ui_Form as AxisCtrlTemplate
+
import weakref
class ViewBoxMenu(QtGui.QMenu):
diff --git a/pyqtgraph/graphicsItems/ViewBox/axisCtrlTemplate_pyside2.py b/pyqtgraph/graphicsItems/ViewBox/axisCtrlTemplate_pyside2.py
new file mode 100644
index 00000000..401c52fc
--- /dev/null
+++ b/pyqtgraph/graphicsItems/ViewBox/axisCtrlTemplate_pyside2.py
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/graphicsItems/ViewBox/axisCtrlTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:28 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(186, 154)
+ Form.setMaximumSize(QtCore.QSize(200, 16777215))
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.label = QtWidgets.QLabel(Form)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 7, 0, 1, 2)
+ self.linkCombo = QtWidgets.QComboBox(Form)
+ self.linkCombo.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
+ self.linkCombo.setObjectName("linkCombo")
+ self.gridLayout.addWidget(self.linkCombo, 7, 2, 1, 2)
+ self.autoPercentSpin = QtWidgets.QSpinBox(Form)
+ self.autoPercentSpin.setEnabled(True)
+ self.autoPercentSpin.setMinimum(1)
+ self.autoPercentSpin.setMaximum(100)
+ self.autoPercentSpin.setSingleStep(1)
+ self.autoPercentSpin.setProperty("value", 100)
+ self.autoPercentSpin.setObjectName("autoPercentSpin")
+ self.gridLayout.addWidget(self.autoPercentSpin, 2, 2, 1, 2)
+ self.autoRadio = QtWidgets.QRadioButton(Form)
+ self.autoRadio.setChecked(True)
+ self.autoRadio.setObjectName("autoRadio")
+ self.gridLayout.addWidget(self.autoRadio, 2, 0, 1, 2)
+ self.manualRadio = QtWidgets.QRadioButton(Form)
+ self.manualRadio.setObjectName("manualRadio")
+ self.gridLayout.addWidget(self.manualRadio, 1, 0, 1, 2)
+ self.minText = QtWidgets.QLineEdit(Form)
+ self.minText.setObjectName("minText")
+ self.gridLayout.addWidget(self.minText, 1, 2, 1, 1)
+ self.maxText = QtWidgets.QLineEdit(Form)
+ self.maxText.setObjectName("maxText")
+ self.gridLayout.addWidget(self.maxText, 1, 3, 1, 1)
+ self.invertCheck = QtWidgets.QCheckBox(Form)
+ self.invertCheck.setObjectName("invertCheck")
+ self.gridLayout.addWidget(self.invertCheck, 5, 0, 1, 4)
+ self.mouseCheck = QtWidgets.QCheckBox(Form)
+ self.mouseCheck.setChecked(True)
+ self.mouseCheck.setObjectName("mouseCheck")
+ self.gridLayout.addWidget(self.mouseCheck, 6, 0, 1, 4)
+ self.visibleOnlyCheck = QtWidgets.QCheckBox(Form)
+ self.visibleOnlyCheck.setObjectName("visibleOnlyCheck")
+ self.gridLayout.addWidget(self.visibleOnlyCheck, 3, 2, 1, 2)
+ self.autoPanCheck = QtWidgets.QCheckBox(Form)
+ self.autoPanCheck.setObjectName("autoPanCheck")
+ self.gridLayout.addWidget(self.autoPanCheck, 4, 2, 1, 2)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.label.setText(_translate("Form", "Link Axis:"))
+ self.linkCombo.setToolTip(_translate("Form", "
Links this axis with another view. When linked, both views will display the same data range.
"))
+ self.autoPercentSpin.setToolTip(_translate("Form", "Percent of data to be visible when auto-scaling. It may be useful to decrease this value for data with spiky noise.
"))
+ self.autoPercentSpin.setSuffix(_translate("Form", "%"))
+ self.autoRadio.setToolTip(_translate("Form", "Automatically resize this axis whenever the displayed data is changed.
"))
+ self.autoRadio.setText(_translate("Form", "Auto"))
+ self.manualRadio.setToolTip(_translate("Form", "Set the range for this axis manually. This disables automatic scaling.
"))
+ self.manualRadio.setText(_translate("Form", "Manual"))
+ self.minText.setToolTip(_translate("Form", "Minimum value to display for this axis.
"))
+ self.minText.setText(_translate("Form", "0"))
+ self.maxText.setToolTip(_translate("Form", "Maximum value to display for this axis.
"))
+ self.maxText.setText(_translate("Form", "0"))
+ self.invertCheck.setToolTip(_translate("Form", "Inverts the display of this axis. (+y points downward instead of upward)
"))
+ self.invertCheck.setText(_translate("Form", "Invert Axis"))
+ self.mouseCheck.setToolTip(_translate("Form", "Enables mouse interaction (panning, scaling) for this axis.
"))
+ self.mouseCheck.setText(_translate("Form", "Mouse Enabled"))
+ self.visibleOnlyCheck.setToolTip(_translate("Form", "When checked, the axis will only auto-scale to data that is visible along the orthogonal axis.
"))
+ self.visibleOnlyCheck.setText(_translate("Form", "Visible Data Only"))
+ self.autoPanCheck.setToolTip(_translate("Form", "When checked, the axis will automatically pan to center on the current data, but the scale along this axis will not change.
"))
+ self.autoPanCheck.setText(_translate("Form", "Auto Pan Only"))
+
diff --git a/pyqtgraph/imageview/ImageView.py b/pyqtgraph/imageview/ImageView.py
index 5cc00f68..c3e01379 100644
--- a/pyqtgraph/imageview/ImageView.py
+++ b/pyqtgraph/imageview/ImageView.py
@@ -15,9 +15,13 @@ Widget used for displaying 2D or 3D data. Features:
import os
import numpy as np
-from ..Qt import QtCore, QtGui, USE_PYSIDE
+from ..Qt import QtCore, QtGui, USE_PYSIDE, USE_PYSIDE2, USE_PYQT5
if USE_PYSIDE:
from .ImageViewTemplate_pyside import *
+elif USE_PYSIDE2:
+ from .ImageViewTemplate_pyside2 import *
+elif USE_PYQT5:
+ from .ImageViewTemplate_pyqt5 import *
else:
from .ImageViewTemplate_pyqt import *
diff --git a/pyqtgraph/imageview/ImageViewTemplate_pyqt5.py b/pyqtgraph/imageview/ImageViewTemplate_pyqt5.py
index 4b4009b6..1d076a9e 100644
--- a/pyqtgraph/imageview/ImageViewTemplate_pyqt5.py
+++ b/pyqtgraph/imageview/ImageViewTemplate_pyqt5.py
@@ -41,15 +41,15 @@ class Ui_Form(object):
self.roiBtn.setCheckable(True)
self.roiBtn.setObjectName("roiBtn")
self.gridLayout.addWidget(self.roiBtn, 1, 1, 1, 1)
- self.normBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.menuBtn = QtWidgets.QPushButton(self.layoutWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(1)
- sizePolicy.setHeightForWidth(self.normBtn.sizePolicy().hasHeightForWidth())
- self.normBtn.setSizePolicy(sizePolicy)
- self.normBtn.setCheckable(True)
- self.normBtn.setObjectName("normBtn")
- self.gridLayout.addWidget(self.normBtn, 1, 2, 1, 1)
+ sizePolicy.setHeightForWidth(self.menuBtn.sizePolicy().hasHeightForWidth())
+ self.menuBtn.setSizePolicy(sizePolicy)
+ self.menuBtn.setCheckable(True)
+ self.menuBtn.setObjectName("menuBtn")
+ self.gridLayout.addWidget(self.menuBtn, 1, 2, 1, 1)
self.roiPlot = PlotWidget(self.splitter)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -136,7 +136,7 @@ class Ui_Form(object):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.roiBtn.setText(_translate("Form", "ROI"))
- self.normBtn.setText(_translate("Form", "Norm"))
+ self.menuBtn.setText(_translate("Form", "Norm"))
self.normGroup.setTitle(_translate("Form", "Normalization"))
self.normSubtractRadio.setText(_translate("Form", "Subtract"))
self.normDivideRadio.setText(_translate("Form", "Divide"))
diff --git a/pyqtgraph/imageview/ImageViewTemplate_pyside2.py b/pyqtgraph/imageview/ImageViewTemplate_pyside2.py
new file mode 100644
index 00000000..70b76635
--- /dev/null
+++ b/pyqtgraph/imageview/ImageViewTemplate_pyside2.py
@@ -0,0 +1,156 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file './pyqtgraph/imageview/ImageViewTemplate.ui'
+#
+# Created: Wed Mar 26 15:09:28 2014
+# by: PyQt5 UI code generator 5.0.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(726, 588)
+ self.gridLayout_3 = QtWidgets.QGridLayout(Form)
+ self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_3.setSpacing(0)
+ self.gridLayout_3.setObjectName("gridLayout_3")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Vertical)
+ self.splitter.setObjectName("splitter")
+ self.layoutWidget = QtWidgets.QWidget(self.splitter)
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.graphicsView = GraphicsView(self.layoutWidget)
+ self.graphicsView.setObjectName("graphicsView")
+ self.gridLayout.addWidget(self.graphicsView, 0, 0, 2, 1)
+ self.histogram = HistogramLUTWidget(self.layoutWidget)
+ self.histogram.setObjectName("histogram")
+ self.gridLayout.addWidget(self.histogram, 0, 1, 1, 2)
+ self.roiBtn = QtWidgets.QPushButton(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(1)
+ sizePolicy.setHeightForWidth(self.roiBtn.sizePolicy().hasHeightForWidth())
+ self.roiBtn.setSizePolicy(sizePolicy)
+ self.roiBtn.setCheckable(True)
+ self.roiBtn.setObjectName("roiBtn")
+ self.gridLayout.addWidget(self.roiBtn, 1, 1, 1, 1)
+ self.menuBtn = QtWidgets.QPushButton(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(1)
+ sizePolicy.setHeightForWidth(self.menuBtn.sizePolicy().hasHeightForWidth())
+ self.menuBtn.setSizePolicy(sizePolicy)
+ self.menuBtn.setCheckable(True)
+ self.menuBtn.setObjectName("menuBtn")
+ self.gridLayout.addWidget(self.menuBtn, 1, 2, 1, 1)
+ self.roiPlot = PlotWidget(self.splitter)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.roiPlot.sizePolicy().hasHeightForWidth())
+ self.roiPlot.setSizePolicy(sizePolicy)
+ self.roiPlot.setMinimumSize(QtCore.QSize(0, 40))
+ self.roiPlot.setObjectName("roiPlot")
+ self.gridLayout_3.addWidget(self.splitter, 0, 0, 1, 1)
+ self.normGroup = QtWidgets.QGroupBox(Form)
+ self.normGroup.setObjectName("normGroup")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.normGroup)
+ self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_2.setSpacing(0)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.normSubtractRadio = QtWidgets.QRadioButton(self.normGroup)
+ self.normSubtractRadio.setObjectName("normSubtractRadio")
+ self.gridLayout_2.addWidget(self.normSubtractRadio, 0, 2, 1, 1)
+ self.normDivideRadio = QtWidgets.QRadioButton(self.normGroup)
+ self.normDivideRadio.setChecked(False)
+ self.normDivideRadio.setObjectName("normDivideRadio")
+ self.gridLayout_2.addWidget(self.normDivideRadio, 0, 1, 1, 1)
+ self.label_5 = QtWidgets.QLabel(self.normGroup)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.label_5.setFont(font)
+ self.label_5.setObjectName("label_5")
+ self.gridLayout_2.addWidget(self.label_5, 0, 0, 1, 1)
+ self.label_3 = QtWidgets.QLabel(self.normGroup)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.label_3.setFont(font)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
+ self.label_4 = QtWidgets.QLabel(self.normGroup)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.label_4.setFont(font)
+ self.label_4.setObjectName("label_4")
+ self.gridLayout_2.addWidget(self.label_4, 2, 0, 1, 1)
+ self.normROICheck = QtWidgets.QCheckBox(self.normGroup)
+ self.normROICheck.setObjectName("normROICheck")
+ self.gridLayout_2.addWidget(self.normROICheck, 1, 1, 1, 1)
+ self.normXBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
+ self.normXBlurSpin.setObjectName("normXBlurSpin")
+ self.gridLayout_2.addWidget(self.normXBlurSpin, 2, 2, 1, 1)
+ self.label_8 = QtWidgets.QLabel(self.normGroup)
+ self.label_8.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_8.setObjectName("label_8")
+ self.gridLayout_2.addWidget(self.label_8, 2, 1, 1, 1)
+ self.label_9 = QtWidgets.QLabel(self.normGroup)
+ self.label_9.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_9.setObjectName("label_9")
+ self.gridLayout_2.addWidget(self.label_9, 2, 3, 1, 1)
+ self.normYBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
+ self.normYBlurSpin.setObjectName("normYBlurSpin")
+ self.gridLayout_2.addWidget(self.normYBlurSpin, 2, 4, 1, 1)
+ self.label_10 = QtWidgets.QLabel(self.normGroup)
+ self.label_10.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_10.setObjectName("label_10")
+ self.gridLayout_2.addWidget(self.label_10, 2, 5, 1, 1)
+ self.normOffRadio = QtWidgets.QRadioButton(self.normGroup)
+ self.normOffRadio.setChecked(True)
+ self.normOffRadio.setObjectName("normOffRadio")
+ self.gridLayout_2.addWidget(self.normOffRadio, 0, 3, 1, 1)
+ self.normTimeRangeCheck = QtWidgets.QCheckBox(self.normGroup)
+ self.normTimeRangeCheck.setObjectName("normTimeRangeCheck")
+ self.gridLayout_2.addWidget(self.normTimeRangeCheck, 1, 3, 1, 1)
+ self.normFrameCheck = QtWidgets.QCheckBox(self.normGroup)
+ self.normFrameCheck.setObjectName("normFrameCheck")
+ self.gridLayout_2.addWidget(self.normFrameCheck, 1, 2, 1, 1)
+ self.normTBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
+ self.normTBlurSpin.setObjectName("normTBlurSpin")
+ self.gridLayout_2.addWidget(self.normTBlurSpin, 2, 6, 1, 1)
+ self.gridLayout_3.addWidget(self.normGroup, 1, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.roiBtn.setText(_translate("Form", "ROI"))
+ self.menuBtn.setText(_translate("Form", "Norm"))
+ self.normGroup.setTitle(_translate("Form", "Normalization"))
+ self.normSubtractRadio.setText(_translate("Form", "Subtract"))
+ self.normDivideRadio.setText(_translate("Form", "Divide"))
+ self.label_5.setText(_translate("Form", "Operation:"))
+ self.label_3.setText(_translate("Form", "Mean:"))
+ self.label_4.setText(_translate("Form", "Blur:"))
+ self.normROICheck.setText(_translate("Form", "ROI"))
+ self.label_8.setText(_translate("Form", "X"))
+ self.label_9.setText(_translate("Form", "Y"))
+ self.label_10.setText(_translate("Form", "T"))
+ self.normOffRadio.setText(_translate("Form", "Off"))
+ self.normTimeRangeCheck.setText(_translate("Form", "Time range"))
+ self.normFrameCheck.setText(_translate("Form", "Frame"))
+
+from ..widgets.HistogramLUTWidget import HistogramLUTWidget
+from ..widgets.PlotWidget import PlotWidget
+from ..widgets.GraphicsView import GraphicsView
diff --git a/pyqtgraph/widgets/RemoteGraphicsView.py b/pyqtgraph/widgets/RemoteGraphicsView.py
index 85f5556a..f6a7888b 100644
--- a/pyqtgraph/widgets/RemoteGraphicsView.py
+++ b/pyqtgraph/widgets/RemoteGraphicsView.py
@@ -1,5 +1,5 @@
-from ..Qt import QtGui, QtCore, USE_PYSIDE
-if not USE_PYSIDE:
+from ..Qt import QtGui, QtCore, USE_PYSIDE, USE_PYSIDE2
+if not USE_PYSIDE and not USE_PYSIDE2:
import sip
from .. import multiprocess as mp
from .GraphicsView import GraphicsView
From 1cbef74e82d471566d50bb358c20e2514b2681f9 Mon Sep 17 00:00:00 2001
From: Max Peng
Date: Sun, 18 Sep 2016 19:24:39 +0800
Subject: [PATCH 2/3] update ui files for pyside2 and pyqt5.
---
.../ScatterPlotSpeedTestTemplate_pyqt5.py | 44 +++
.../ScatterPlotSpeedTestTemplate_pyside2.py | 44 +++
examples/VideoTemplate_pyqt5.py | 207 ++++++++++++
examples/VideoTemplate_pyside2.py | 207 ++++++++++++
examples/exampleLoaderTemplate_pyside2.py | 185 ++++++-----
.../exportDialogTemplate_pyside2.py | 127 ++++---
pyqtgraph/canvas/CanvasTemplate_pyside2.py | 183 +++++------
.../canvas/TransformGuiTemplate_pyside2.py | 111 ++++---
pyqtgraph/console/template_pyside2.py | 220 +++++++------
.../FlowchartCtrlTemplate_pyside2.py | 133 ++++----
.../flowchart/FlowchartTemplate_pyside2.py | 109 +++---
.../imageview/ImageViewTemplate_pyside2.py | 310 +++++++++---------
12 files changed, 1186 insertions(+), 694 deletions(-)
create mode 100644 examples/ScatterPlotSpeedTestTemplate_pyqt5.py
create mode 100644 examples/ScatterPlotSpeedTestTemplate_pyside2.py
create mode 100644 examples/VideoTemplate_pyqt5.py
create mode 100644 examples/VideoTemplate_pyside2.py
diff --git a/examples/ScatterPlotSpeedTestTemplate_pyqt5.py b/examples/ScatterPlotSpeedTestTemplate_pyqt5.py
new file mode 100644
index 00000000..1c7be1d3
--- /dev/null
+++ b/examples/ScatterPlotSpeedTestTemplate_pyqt5.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'ScatterPlotSpeedTestTemplate.ui'
+#
+# Created: Sun Sep 18 19:21:36 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(400, 300)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setObjectName("gridLayout")
+ self.sizeSpin = QtWidgets.QSpinBox(Form)
+ self.sizeSpin.setProperty("value", 10)
+ self.sizeSpin.setObjectName("sizeSpin")
+ self.gridLayout.addWidget(self.sizeSpin, 1, 1, 1, 1)
+ self.pixelModeCheck = QtWidgets.QCheckBox(Form)
+ self.pixelModeCheck.setObjectName("pixelModeCheck")
+ self.gridLayout.addWidget(self.pixelModeCheck, 1, 3, 1, 1)
+ self.label = QtWidgets.QLabel(Form)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
+ self.plot = PlotWidget(Form)
+ self.plot.setObjectName("plot")
+ self.gridLayout.addWidget(self.plot, 0, 0, 1, 4)
+ self.randCheck = QtWidgets.QCheckBox(Form)
+ self.randCheck.setObjectName("randCheck")
+ self.gridLayout.addWidget(self.randCheck, 1, 2, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+ self.pixelModeCheck.setText(QtWidgets.QApplication.translate("Form", "pixel mode", None, -1))
+ self.label.setText(QtWidgets.QApplication.translate("Form", "Size", None, -1))
+ self.randCheck.setText(QtWidgets.QApplication.translate("Form", "Randomize", None, -1))
+
+from pyqtgraph import PlotWidget
diff --git a/examples/ScatterPlotSpeedTestTemplate_pyside2.py b/examples/ScatterPlotSpeedTestTemplate_pyside2.py
new file mode 100644
index 00000000..7b66ad46
--- /dev/null
+++ b/examples/ScatterPlotSpeedTestTemplate_pyside2.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'ScatterPlotSpeedTestTemplate.ui'
+#
+# Created: Sun Sep 18 19:21:36 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(400, 300)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setObjectName("gridLayout")
+ self.sizeSpin = QtWidgets.QSpinBox(Form)
+ self.sizeSpin.setProperty("value", 10)
+ self.sizeSpin.setObjectName("sizeSpin")
+ self.gridLayout.addWidget(self.sizeSpin, 1, 1, 1, 1)
+ self.pixelModeCheck = QtWidgets.QCheckBox(Form)
+ self.pixelModeCheck.setObjectName("pixelModeCheck")
+ self.gridLayout.addWidget(self.pixelModeCheck, 1, 3, 1, 1)
+ self.label = QtWidgets.QLabel(Form)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
+ self.plot = PlotWidget(Form)
+ self.plot.setObjectName("plot")
+ self.gridLayout.addWidget(self.plot, 0, 0, 1, 4)
+ self.randCheck = QtWidgets.QCheckBox(Form)
+ self.randCheck.setObjectName("randCheck")
+ self.gridLayout.addWidget(self.randCheck, 1, 2, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+ self.pixelModeCheck.setText(QtWidgets.QApplication.translate("Form", "pixel mode", None, -1))
+ self.label.setText(QtWidgets.QApplication.translate("Form", "Size", None, -1))
+ self.randCheck.setText(QtWidgets.QApplication.translate("Form", "Randomize", None, -1))
+
+from pyqtgraph import PlotWidget
diff --git a/examples/VideoTemplate_pyqt5.py b/examples/VideoTemplate_pyqt5.py
new file mode 100644
index 00000000..2e377f44
--- /dev/null
+++ b/examples/VideoTemplate_pyqt5.py
@@ -0,0 +1,207 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'VideoTemplate.ui'
+#
+# Created: Sun Sep 18 19:22:41 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ MainWindow.setObjectName("MainWindow")
+ MainWindow.resize(695, 798)
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
+ self.centralwidget.setObjectName("centralwidget")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.downsampleCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.downsampleCheck.setObjectName("downsampleCheck")
+ self.gridLayout_2.addWidget(self.downsampleCheck, 8, 0, 1, 2)
+ self.scaleCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.scaleCheck.setObjectName("scaleCheck")
+ self.gridLayout_2.addWidget(self.scaleCheck, 4, 0, 1, 1)
+ self.gridLayout = QtWidgets.QGridLayout()
+ self.gridLayout.setObjectName("gridLayout")
+ self.rawRadio = QtWidgets.QRadioButton(self.centralwidget)
+ self.rawRadio.setObjectName("rawRadio")
+ self.gridLayout.addWidget(self.rawRadio, 3, 0, 1, 1)
+ self.gfxRadio = QtWidgets.QRadioButton(self.centralwidget)
+ self.gfxRadio.setChecked(True)
+ self.gfxRadio.setObjectName("gfxRadio")
+ self.gridLayout.addWidget(self.gfxRadio, 2, 0, 1, 1)
+ self.stack = QtWidgets.QStackedWidget(self.centralwidget)
+ self.stack.setObjectName("stack")
+ self.page = QtWidgets.QWidget()
+ self.page.setObjectName("page")
+ self.gridLayout_3 = QtWidgets.QGridLayout(self.page)
+ self.gridLayout_3.setObjectName("gridLayout_3")
+ self.graphicsView = GraphicsView(self.page)
+ self.graphicsView.setObjectName("graphicsView")
+ self.gridLayout_3.addWidget(self.graphicsView, 0, 0, 1, 1)
+ self.stack.addWidget(self.page)
+ self.page_2 = QtWidgets.QWidget()
+ self.page_2.setObjectName("page_2")
+ self.gridLayout_4 = QtWidgets.QGridLayout(self.page_2)
+ self.gridLayout_4.setObjectName("gridLayout_4")
+ self.rawImg = RawImageWidget(self.page_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.rawImg.sizePolicy().hasHeightForWidth())
+ self.rawImg.setSizePolicy(sizePolicy)
+ self.rawImg.setObjectName("rawImg")
+ self.gridLayout_4.addWidget(self.rawImg, 0, 0, 1, 1)
+ self.stack.addWidget(self.page_2)
+ self.page_3 = QtWidgets.QWidget()
+ self.page_3.setObjectName("page_3")
+ self.gridLayout_5 = QtWidgets.QGridLayout(self.page_3)
+ self.gridLayout_5.setObjectName("gridLayout_5")
+ self.rawGLImg = RawImageGLWidget(self.page_3)
+ self.rawGLImg.setObjectName("rawGLImg")
+ self.gridLayout_5.addWidget(self.rawGLImg, 0, 0, 1, 1)
+ self.stack.addWidget(self.page_3)
+ self.gridLayout.addWidget(self.stack, 0, 0, 1, 1)
+ self.rawGLRadio = QtWidgets.QRadioButton(self.centralwidget)
+ self.rawGLRadio.setObjectName("rawGLRadio")
+ self.gridLayout.addWidget(self.rawGLRadio, 4, 0, 1, 1)
+ self.gridLayout_2.addLayout(self.gridLayout, 1, 0, 1, 4)
+ self.dtypeCombo = QtWidgets.QComboBox(self.centralwidget)
+ self.dtypeCombo.setObjectName("dtypeCombo")
+ self.dtypeCombo.addItem("")
+ self.dtypeCombo.addItem("")
+ self.dtypeCombo.addItem("")
+ self.gridLayout_2.addWidget(self.dtypeCombo, 3, 2, 1, 1)
+ self.label = QtWidgets.QLabel(self.centralwidget)
+ self.label.setObjectName("label")
+ self.gridLayout_2.addWidget(self.label, 3, 0, 1, 1)
+ self.rgbLevelsCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.rgbLevelsCheck.setObjectName("rgbLevelsCheck")
+ self.gridLayout_2.addWidget(self.rgbLevelsCheck, 4, 1, 1, 1)
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.minSpin2 = SpinBox(self.centralwidget)
+ self.minSpin2.setEnabled(False)
+ self.minSpin2.setObjectName("minSpin2")
+ self.horizontalLayout_2.addWidget(self.minSpin2)
+ self.label_3 = QtWidgets.QLabel(self.centralwidget)
+ self.label_3.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_3.setObjectName("label_3")
+ self.horizontalLayout_2.addWidget(self.label_3)
+ self.maxSpin2 = SpinBox(self.centralwidget)
+ self.maxSpin2.setEnabled(False)
+ self.maxSpin2.setObjectName("maxSpin2")
+ self.horizontalLayout_2.addWidget(self.maxSpin2)
+ self.gridLayout_2.addLayout(self.horizontalLayout_2, 5, 2, 1, 1)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.minSpin1 = SpinBox(self.centralwidget)
+ self.minSpin1.setObjectName("minSpin1")
+ self.horizontalLayout.addWidget(self.minSpin1)
+ self.label_2 = QtWidgets.QLabel(self.centralwidget)
+ self.label_2.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_2.setObjectName("label_2")
+ self.horizontalLayout.addWidget(self.label_2)
+ self.maxSpin1 = SpinBox(self.centralwidget)
+ self.maxSpin1.setObjectName("maxSpin1")
+ self.horizontalLayout.addWidget(self.maxSpin1)
+ self.gridLayout_2.addLayout(self.horizontalLayout, 4, 2, 1, 1)
+ self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+ self.minSpin3 = SpinBox(self.centralwidget)
+ self.minSpin3.setEnabled(False)
+ self.minSpin3.setObjectName("minSpin3")
+ self.horizontalLayout_3.addWidget(self.minSpin3)
+ self.label_4 = QtWidgets.QLabel(self.centralwidget)
+ self.label_4.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_4.setObjectName("label_4")
+ self.horizontalLayout_3.addWidget(self.label_4)
+ self.maxSpin3 = SpinBox(self.centralwidget)
+ self.maxSpin3.setEnabled(False)
+ self.maxSpin3.setObjectName("maxSpin3")
+ self.horizontalLayout_3.addWidget(self.maxSpin3)
+ self.gridLayout_2.addLayout(self.horizontalLayout_3, 6, 2, 1, 1)
+ self.lutCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.lutCheck.setObjectName("lutCheck")
+ self.gridLayout_2.addWidget(self.lutCheck, 7, 0, 1, 1)
+ self.alphaCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.alphaCheck.setObjectName("alphaCheck")
+ self.gridLayout_2.addWidget(self.alphaCheck, 7, 1, 1, 1)
+ self.gradient = GradientWidget(self.centralwidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.gradient.sizePolicy().hasHeightForWidth())
+ self.gradient.setSizePolicy(sizePolicy)
+ self.gradient.setObjectName("gradient")
+ self.gridLayout_2.addWidget(self.gradient, 7, 2, 1, 2)
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.gridLayout_2.addItem(spacerItem, 3, 3, 1, 1)
+ self.fpsLabel = QtWidgets.QLabel(self.centralwidget)
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.fpsLabel.setFont(font)
+ self.fpsLabel.setAlignment(QtCore.Qt.AlignCenter)
+ self.fpsLabel.setObjectName("fpsLabel")
+ self.gridLayout_2.addWidget(self.fpsLabel, 0, 0, 1, 4)
+ self.rgbCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.rgbCheck.setObjectName("rgbCheck")
+ self.gridLayout_2.addWidget(self.rgbCheck, 3, 1, 1, 1)
+ self.label_5 = QtWidgets.QLabel(self.centralwidget)
+ self.label_5.setObjectName("label_5")
+ self.gridLayout_2.addWidget(self.label_5, 2, 0, 1, 1)
+ self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_4.setObjectName("horizontalLayout_4")
+ self.framesSpin = QtWidgets.QSpinBox(self.centralwidget)
+ self.framesSpin.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
+ self.framesSpin.setProperty("value", 10)
+ self.framesSpin.setObjectName("framesSpin")
+ self.horizontalLayout_4.addWidget(self.framesSpin)
+ self.widthSpin = QtWidgets.QSpinBox(self.centralwidget)
+ self.widthSpin.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus)
+ self.widthSpin.setMaximum(10000)
+ self.widthSpin.setProperty("value", 512)
+ self.widthSpin.setObjectName("widthSpin")
+ self.horizontalLayout_4.addWidget(self.widthSpin)
+ self.heightSpin = QtWidgets.QSpinBox(self.centralwidget)
+ self.heightSpin.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
+ self.heightSpin.setMaximum(10000)
+ self.heightSpin.setProperty("value", 512)
+ self.heightSpin.setObjectName("heightSpin")
+ self.horizontalLayout_4.addWidget(self.heightSpin)
+ self.gridLayout_2.addLayout(self.horizontalLayout_4, 2, 1, 1, 2)
+ self.sizeLabel = QtWidgets.QLabel(self.centralwidget)
+ self.sizeLabel.setText("")
+ self.sizeLabel.setObjectName("sizeLabel")
+ self.gridLayout_2.addWidget(self.sizeLabel, 2, 3, 1, 1)
+ MainWindow.setCentralWidget(self.centralwidget)
+
+ self.retranslateUi(MainWindow)
+ self.stack.setCurrentIndex(2)
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QtWidgets.QApplication.translate("MainWindow", "MainWindow", None, -1))
+ self.downsampleCheck.setText(QtWidgets.QApplication.translate("MainWindow", "Auto downsample", None, -1))
+ self.scaleCheck.setText(QtWidgets.QApplication.translate("MainWindow", "Scale Data", None, -1))
+ self.rawRadio.setText(QtWidgets.QApplication.translate("MainWindow", "RawImageWidget", None, -1))
+ self.gfxRadio.setText(QtWidgets.QApplication.translate("MainWindow", "GraphicsView + ImageItem", None, -1))
+ self.rawGLRadio.setText(QtWidgets.QApplication.translate("MainWindow", "RawGLImageWidget", None, -1))
+ self.dtypeCombo.setItemText(0, QtWidgets.QApplication.translate("MainWindow", "uint8", None, -1))
+ self.dtypeCombo.setItemText(1, QtWidgets.QApplication.translate("MainWindow", "uint16", None, -1))
+ self.dtypeCombo.setItemText(2, QtWidgets.QApplication.translate("MainWindow", "float", None, -1))
+ self.label.setText(QtWidgets.QApplication.translate("MainWindow", "Data type", None, -1))
+ self.rgbLevelsCheck.setText(QtWidgets.QApplication.translate("MainWindow", "RGB", None, -1))
+ self.label_3.setText(QtWidgets.QApplication.translate("MainWindow", "<--->", None, -1))
+ self.label_2.setText(QtWidgets.QApplication.translate("MainWindow", "<--->", None, -1))
+ self.label_4.setText(QtWidgets.QApplication.translate("MainWindow", "<--->", None, -1))
+ self.lutCheck.setText(QtWidgets.QApplication.translate("MainWindow", "Use Lookup Table", None, -1))
+ self.alphaCheck.setText(QtWidgets.QApplication.translate("MainWindow", "alpha", None, -1))
+ self.fpsLabel.setText(QtWidgets.QApplication.translate("MainWindow", "FPS", None, -1))
+ self.rgbCheck.setText(QtWidgets.QApplication.translate("MainWindow", "RGB", None, -1))
+ self.label_5.setText(QtWidgets.QApplication.translate("MainWindow", "Image size", None, -1))
+
+from pyqtgraph.widgets.RawImageWidget import RawImageGLWidget, RawImageWidget
+from pyqtgraph import GradientWidget, SpinBox, GraphicsView
diff --git a/examples/VideoTemplate_pyside2.py b/examples/VideoTemplate_pyside2.py
new file mode 100644
index 00000000..a3596714
--- /dev/null
+++ b/examples/VideoTemplate_pyside2.py
@@ -0,0 +1,207 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'VideoTemplate.ui'
+#
+# Created: Sun Sep 18 19:22:41 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ MainWindow.setObjectName("MainWindow")
+ MainWindow.resize(695, 798)
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
+ self.centralwidget.setObjectName("centralwidget")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.downsampleCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.downsampleCheck.setObjectName("downsampleCheck")
+ self.gridLayout_2.addWidget(self.downsampleCheck, 8, 0, 1, 2)
+ self.scaleCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.scaleCheck.setObjectName("scaleCheck")
+ self.gridLayout_2.addWidget(self.scaleCheck, 4, 0, 1, 1)
+ self.gridLayout = QtWidgets.QGridLayout()
+ self.gridLayout.setObjectName("gridLayout")
+ self.rawRadio = QtWidgets.QRadioButton(self.centralwidget)
+ self.rawRadio.setObjectName("rawRadio")
+ self.gridLayout.addWidget(self.rawRadio, 3, 0, 1, 1)
+ self.gfxRadio = QtWidgets.QRadioButton(self.centralwidget)
+ self.gfxRadio.setChecked(True)
+ self.gfxRadio.setObjectName("gfxRadio")
+ self.gridLayout.addWidget(self.gfxRadio, 2, 0, 1, 1)
+ self.stack = QtWidgets.QStackedWidget(self.centralwidget)
+ self.stack.setObjectName("stack")
+ self.page = QtWidgets.QWidget()
+ self.page.setObjectName("page")
+ self.gridLayout_3 = QtWidgets.QGridLayout(self.page)
+ self.gridLayout_3.setObjectName("gridLayout_3")
+ self.graphicsView = GraphicsView(self.page)
+ self.graphicsView.setObjectName("graphicsView")
+ self.gridLayout_3.addWidget(self.graphicsView, 0, 0, 1, 1)
+ self.stack.addWidget(self.page)
+ self.page_2 = QtWidgets.QWidget()
+ self.page_2.setObjectName("page_2")
+ self.gridLayout_4 = QtWidgets.QGridLayout(self.page_2)
+ self.gridLayout_4.setObjectName("gridLayout_4")
+ self.rawImg = RawImageWidget(self.page_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.rawImg.sizePolicy().hasHeightForWidth())
+ self.rawImg.setSizePolicy(sizePolicy)
+ self.rawImg.setObjectName("rawImg")
+ self.gridLayout_4.addWidget(self.rawImg, 0, 0, 1, 1)
+ self.stack.addWidget(self.page_2)
+ self.page_3 = QtWidgets.QWidget()
+ self.page_3.setObjectName("page_3")
+ self.gridLayout_5 = QtWidgets.QGridLayout(self.page_3)
+ self.gridLayout_5.setObjectName("gridLayout_5")
+ self.rawGLImg = RawImageGLWidget(self.page_3)
+ self.rawGLImg.setObjectName("rawGLImg")
+ self.gridLayout_5.addWidget(self.rawGLImg, 0, 0, 1, 1)
+ self.stack.addWidget(self.page_3)
+ self.gridLayout.addWidget(self.stack, 0, 0, 1, 1)
+ self.rawGLRadio = QtWidgets.QRadioButton(self.centralwidget)
+ self.rawGLRadio.setObjectName("rawGLRadio")
+ self.gridLayout.addWidget(self.rawGLRadio, 4, 0, 1, 1)
+ self.gridLayout_2.addLayout(self.gridLayout, 1, 0, 1, 4)
+ self.dtypeCombo = QtWidgets.QComboBox(self.centralwidget)
+ self.dtypeCombo.setObjectName("dtypeCombo")
+ self.dtypeCombo.addItem("")
+ self.dtypeCombo.addItem("")
+ self.dtypeCombo.addItem("")
+ self.gridLayout_2.addWidget(self.dtypeCombo, 3, 2, 1, 1)
+ self.label = QtWidgets.QLabel(self.centralwidget)
+ self.label.setObjectName("label")
+ self.gridLayout_2.addWidget(self.label, 3, 0, 1, 1)
+ self.rgbLevelsCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.rgbLevelsCheck.setObjectName("rgbLevelsCheck")
+ self.gridLayout_2.addWidget(self.rgbLevelsCheck, 4, 1, 1, 1)
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.minSpin2 = SpinBox(self.centralwidget)
+ self.minSpin2.setEnabled(False)
+ self.minSpin2.setObjectName("minSpin2")
+ self.horizontalLayout_2.addWidget(self.minSpin2)
+ self.label_3 = QtWidgets.QLabel(self.centralwidget)
+ self.label_3.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_3.setObjectName("label_3")
+ self.horizontalLayout_2.addWidget(self.label_3)
+ self.maxSpin2 = SpinBox(self.centralwidget)
+ self.maxSpin2.setEnabled(False)
+ self.maxSpin2.setObjectName("maxSpin2")
+ self.horizontalLayout_2.addWidget(self.maxSpin2)
+ self.gridLayout_2.addLayout(self.horizontalLayout_2, 5, 2, 1, 1)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.minSpin1 = SpinBox(self.centralwidget)
+ self.minSpin1.setObjectName("minSpin1")
+ self.horizontalLayout.addWidget(self.minSpin1)
+ self.label_2 = QtWidgets.QLabel(self.centralwidget)
+ self.label_2.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_2.setObjectName("label_2")
+ self.horizontalLayout.addWidget(self.label_2)
+ self.maxSpin1 = SpinBox(self.centralwidget)
+ self.maxSpin1.setObjectName("maxSpin1")
+ self.horizontalLayout.addWidget(self.maxSpin1)
+ self.gridLayout_2.addLayout(self.horizontalLayout, 4, 2, 1, 1)
+ self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+ self.minSpin3 = SpinBox(self.centralwidget)
+ self.minSpin3.setEnabled(False)
+ self.minSpin3.setObjectName("minSpin3")
+ self.horizontalLayout_3.addWidget(self.minSpin3)
+ self.label_4 = QtWidgets.QLabel(self.centralwidget)
+ self.label_4.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_4.setObjectName("label_4")
+ self.horizontalLayout_3.addWidget(self.label_4)
+ self.maxSpin3 = SpinBox(self.centralwidget)
+ self.maxSpin3.setEnabled(False)
+ self.maxSpin3.setObjectName("maxSpin3")
+ self.horizontalLayout_3.addWidget(self.maxSpin3)
+ self.gridLayout_2.addLayout(self.horizontalLayout_3, 6, 2, 1, 1)
+ self.lutCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.lutCheck.setObjectName("lutCheck")
+ self.gridLayout_2.addWidget(self.lutCheck, 7, 0, 1, 1)
+ self.alphaCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.alphaCheck.setObjectName("alphaCheck")
+ self.gridLayout_2.addWidget(self.alphaCheck, 7, 1, 1, 1)
+ self.gradient = GradientWidget(self.centralwidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.gradient.sizePolicy().hasHeightForWidth())
+ self.gradient.setSizePolicy(sizePolicy)
+ self.gradient.setObjectName("gradient")
+ self.gridLayout_2.addWidget(self.gradient, 7, 2, 1, 2)
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.gridLayout_2.addItem(spacerItem, 3, 3, 1, 1)
+ self.fpsLabel = QtWidgets.QLabel(self.centralwidget)
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.fpsLabel.setFont(font)
+ self.fpsLabel.setAlignment(QtCore.Qt.AlignCenter)
+ self.fpsLabel.setObjectName("fpsLabel")
+ self.gridLayout_2.addWidget(self.fpsLabel, 0, 0, 1, 4)
+ self.rgbCheck = QtWidgets.QCheckBox(self.centralwidget)
+ self.rgbCheck.setObjectName("rgbCheck")
+ self.gridLayout_2.addWidget(self.rgbCheck, 3, 1, 1, 1)
+ self.label_5 = QtWidgets.QLabel(self.centralwidget)
+ self.label_5.setObjectName("label_5")
+ self.gridLayout_2.addWidget(self.label_5, 2, 0, 1, 1)
+ self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_4.setObjectName("horizontalLayout_4")
+ self.framesSpin = QtWidgets.QSpinBox(self.centralwidget)
+ self.framesSpin.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
+ self.framesSpin.setProperty("value", 10)
+ self.framesSpin.setObjectName("framesSpin")
+ self.horizontalLayout_4.addWidget(self.framesSpin)
+ self.widthSpin = QtWidgets.QSpinBox(self.centralwidget)
+ self.widthSpin.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus)
+ self.widthSpin.setMaximum(10000)
+ self.widthSpin.setProperty("value", 512)
+ self.widthSpin.setObjectName("widthSpin")
+ self.horizontalLayout_4.addWidget(self.widthSpin)
+ self.heightSpin = QtWidgets.QSpinBox(self.centralwidget)
+ self.heightSpin.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
+ self.heightSpin.setMaximum(10000)
+ self.heightSpin.setProperty("value", 512)
+ self.heightSpin.setObjectName("heightSpin")
+ self.horizontalLayout_4.addWidget(self.heightSpin)
+ self.gridLayout_2.addLayout(self.horizontalLayout_4, 2, 1, 1, 2)
+ self.sizeLabel = QtWidgets.QLabel(self.centralwidget)
+ self.sizeLabel.setText("")
+ self.sizeLabel.setObjectName("sizeLabel")
+ self.gridLayout_2.addWidget(self.sizeLabel, 2, 3, 1, 1)
+ MainWindow.setCentralWidget(self.centralwidget)
+
+ self.retranslateUi(MainWindow)
+ self.stack.setCurrentIndex(2)
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QtWidgets.QApplication.translate("MainWindow", "MainWindow", None, -1))
+ self.downsampleCheck.setText(QtWidgets.QApplication.translate("MainWindow", "Auto downsample", None, -1))
+ self.scaleCheck.setText(QtWidgets.QApplication.translate("MainWindow", "Scale Data", None, -1))
+ self.rawRadio.setText(QtWidgets.QApplication.translate("MainWindow", "RawImageWidget", None, -1))
+ self.gfxRadio.setText(QtWidgets.QApplication.translate("MainWindow", "GraphicsView + ImageItem", None, -1))
+ self.rawGLRadio.setText(QtWidgets.QApplication.translate("MainWindow", "RawGLImageWidget", None, -1))
+ self.dtypeCombo.setItemText(0, QtWidgets.QApplication.translate("MainWindow", "uint8", None, -1))
+ self.dtypeCombo.setItemText(1, QtWidgets.QApplication.translate("MainWindow", "uint16", None, -1))
+ self.dtypeCombo.setItemText(2, QtWidgets.QApplication.translate("MainWindow", "float", None, -1))
+ self.label.setText(QtWidgets.QApplication.translate("MainWindow", "Data type", None, -1))
+ self.rgbLevelsCheck.setText(QtWidgets.QApplication.translate("MainWindow", "RGB", None, -1))
+ self.label_3.setText(QtWidgets.QApplication.translate("MainWindow", "<--->", None, -1))
+ self.label_2.setText(QtWidgets.QApplication.translate("MainWindow", "<--->", None, -1))
+ self.label_4.setText(QtWidgets.QApplication.translate("MainWindow", "<--->", None, -1))
+ self.lutCheck.setText(QtWidgets.QApplication.translate("MainWindow", "Use Lookup Table", None, -1))
+ self.alphaCheck.setText(QtWidgets.QApplication.translate("MainWindow", "alpha", None, -1))
+ self.fpsLabel.setText(QtWidgets.QApplication.translate("MainWindow", "FPS", None, -1))
+ self.rgbCheck.setText(QtWidgets.QApplication.translate("MainWindow", "RGB", None, -1))
+ self.label_5.setText(QtWidgets.QApplication.translate("MainWindow", "Image size", None, -1))
+
+from pyqtgraph.widgets.RawImageWidget import RawImageGLWidget, RawImageWidget
+from pyqtgraph import GradientWidget, SpinBox, GraphicsView
diff --git a/examples/exampleLoaderTemplate_pyside2.py b/examples/exampleLoaderTemplate_pyside2.py
index 0928e651..c3e96555 100644
--- a/examples/exampleLoaderTemplate_pyside2.py
+++ b/examples/exampleLoaderTemplate_pyside2.py
@@ -1,93 +1,92 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'exampleLoaderTemplate.ui'
-#
-# Created: Sat Feb 28 10:28:50 2015
-# by: PyQt5 UI code generator 5.2.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(846, 552)
- self.gridLayout_2 = QtWidgets.QGridLayout(Form)
- self.gridLayout_2.setObjectName("gridLayout_2")
- self.splitter = QtWidgets.QSplitter(Form)
- self.splitter.setOrientation(QtCore.Qt.Horizontal)
- self.splitter.setObjectName("splitter")
- self.widget = QtWidgets.QWidget(self.splitter)
- self.widget.setObjectName("widget")
- self.gridLayout = QtWidgets.QGridLayout(self.widget)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setObjectName("gridLayout")
- self.exampleTree = QtWidgets.QTreeWidget(self.widget)
- self.exampleTree.setObjectName("exampleTree")
- self.exampleTree.headerItem().setText(0, "1")
- self.exampleTree.header().setVisible(False)
- self.gridLayout.addWidget(self.exampleTree, 0, 0, 1, 2)
- self.graphicsSystemCombo = QtWidgets.QComboBox(self.widget)
- self.graphicsSystemCombo.setObjectName("graphicsSystemCombo")
- self.graphicsSystemCombo.addItem("")
- self.graphicsSystemCombo.addItem("")
- self.graphicsSystemCombo.addItem("")
- self.graphicsSystemCombo.addItem("")
- self.gridLayout.addWidget(self.graphicsSystemCombo, 2, 1, 1, 1)
- self.qtLibCombo = QtWidgets.QComboBox(self.widget)
- self.qtLibCombo.setObjectName("qtLibCombo")
- self.qtLibCombo.addItem("")
- self.qtLibCombo.addItem("")
- self.qtLibCombo.addItem("")
- self.qtLibCombo.addItem("")
- self.gridLayout.addWidget(self.qtLibCombo, 1, 1, 1, 1)
- self.label_2 = QtWidgets.QLabel(self.widget)
- self.label_2.setObjectName("label_2")
- self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
- self.label = QtWidgets.QLabel(self.widget)
- self.label.setObjectName("label")
- self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
- self.loadBtn = QtWidgets.QPushButton(self.widget)
- self.loadBtn.setObjectName("loadBtn")
- self.gridLayout.addWidget(self.loadBtn, 3, 1, 1, 1)
- self.widget1 = QtWidgets.QWidget(self.splitter)
- self.widget1.setObjectName("widget1")
- self.verticalLayout = QtWidgets.QVBoxLayout(self.widget1)
- self.verticalLayout.setContentsMargins(0, 0, 0, 0)
- self.verticalLayout.setObjectName("verticalLayout")
- self.loadedFileLabel = QtWidgets.QLabel(self.widget1)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.loadedFileLabel.setFont(font)
- self.loadedFileLabel.setText("")
- self.loadedFileLabel.setAlignment(QtCore.Qt.AlignCenter)
- self.loadedFileLabel.setObjectName("loadedFileLabel")
- self.verticalLayout.addWidget(self.loadedFileLabel)
- self.codeView = QtWidgets.QPlainTextEdit(self.widget1)
- font = QtGui.QFont()
- font.setFamily("FreeMono")
- self.codeView.setFont(font)
- self.codeView.setObjectName("codeView")
- self.verticalLayout.addWidget(self.codeView)
- self.gridLayout_2.addWidget(self.splitter, 0, 0, 1, 1)
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
- self.graphicsSystemCombo.setItemText(0, _translate("Form", "default"))
- self.graphicsSystemCombo.setItemText(1, _translate("Form", "native"))
- self.graphicsSystemCombo.setItemText(2, _translate("Form", "raster"))
- self.graphicsSystemCombo.setItemText(3, _translate("Form", "opengl"))
- self.qtLibCombo.setItemText(0, _translate("Form", "default"))
- self.qtLibCombo.setItemText(1, _translate("Form", "PyQt4"))
- self.qtLibCombo.setItemText(2, _translate("Form", "PySide"))
- self.qtLibCombo.setItemText(3, _translate("Form", "PyQt5"))
- self.label_2.setText(_translate("Form", "Graphics System:"))
- self.label.setText(_translate("Form", "Qt Library:"))
- self.loadBtn.setText(_translate("Form", "Run Example"))
-
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'exampleLoaderTemplate.ui'
+#
+# Created: Sun Sep 18 19:20:44 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(846, 552)
+ self.gridLayout_2 = QtWidgets.QGridLayout(Form)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Horizontal)
+ self.splitter.setObjectName("splitter")
+ self.widget = QtWidgets.QWidget(self.splitter)
+ self.widget.setObjectName("widget")
+ self.gridLayout = QtWidgets.QGridLayout(self.widget)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.exampleTree = QtWidgets.QTreeWidget(self.widget)
+ self.exampleTree.setObjectName("exampleTree")
+ self.exampleTree.headerItem().setText(0, "1")
+ self.exampleTree.header().setVisible(False)
+ self.gridLayout.addWidget(self.exampleTree, 0, 0, 1, 2)
+ self.graphicsSystemCombo = QtWidgets.QComboBox(self.widget)
+ self.graphicsSystemCombo.setObjectName("graphicsSystemCombo")
+ self.graphicsSystemCombo.addItem("")
+ self.graphicsSystemCombo.addItem("")
+ self.graphicsSystemCombo.addItem("")
+ self.graphicsSystemCombo.addItem("")
+ self.gridLayout.addWidget(self.graphicsSystemCombo, 2, 1, 1, 1)
+ self.qtLibCombo = QtWidgets.QComboBox(self.widget)
+ self.qtLibCombo.setObjectName("qtLibCombo")
+ self.qtLibCombo.addItem("")
+ self.qtLibCombo.addItem("")
+ self.qtLibCombo.addItem("")
+ self.qtLibCombo.addItem("")
+ self.gridLayout.addWidget(self.qtLibCombo, 1, 1, 1, 1)
+ self.label_2 = QtWidgets.QLabel(self.widget)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
+ self.label = QtWidgets.QLabel(self.widget)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
+ self.loadBtn = QtWidgets.QPushButton(self.widget)
+ self.loadBtn.setObjectName("loadBtn")
+ self.gridLayout.addWidget(self.loadBtn, 3, 1, 1, 1)
+ self.widget1 = QtWidgets.QWidget(self.splitter)
+ self.widget1.setObjectName("widget1")
+ self.verticalLayout = QtWidgets.QVBoxLayout(self.widget1)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.loadedFileLabel = QtWidgets.QLabel(self.widget1)
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.loadedFileLabel.setFont(font)
+ self.loadedFileLabel.setText("")
+ self.loadedFileLabel.setAlignment(QtCore.Qt.AlignCenter)
+ self.loadedFileLabel.setObjectName("loadedFileLabel")
+ self.verticalLayout.addWidget(self.loadedFileLabel)
+ self.codeView = QtWidgets.QPlainTextEdit(self.widget1)
+ font = QtGui.QFont()
+ font.setFamily("FreeMono")
+ self.codeView.setFont(font)
+ self.codeView.setObjectName("codeView")
+ self.verticalLayout.addWidget(self.codeView)
+ self.gridLayout_2.addWidget(self.splitter, 0, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+ self.graphicsSystemCombo.setItemText(0, QtWidgets.QApplication.translate("Form", "default", None, -1))
+ self.graphicsSystemCombo.setItemText(1, QtWidgets.QApplication.translate("Form", "native", None, -1))
+ self.graphicsSystemCombo.setItemText(2, QtWidgets.QApplication.translate("Form", "raster", None, -1))
+ self.graphicsSystemCombo.setItemText(3, QtWidgets.QApplication.translate("Form", "opengl", None, -1))
+ self.qtLibCombo.setItemText(0, QtWidgets.QApplication.translate("Form", "default", None, -1))
+ self.qtLibCombo.setItemText(1, QtWidgets.QApplication.translate("Form", "PyQt4", None, -1))
+ self.qtLibCombo.setItemText(2, QtWidgets.QApplication.translate("Form", "PySide", None, -1))
+ self.qtLibCombo.setItemText(3, QtWidgets.QApplication.translate("Form", "PyQt5", None, -1))
+ self.label_2.setText(QtWidgets.QApplication.translate("Form", "Graphics System:", None, -1))
+ self.label.setText(QtWidgets.QApplication.translate("Form", "Qt Library:", None, -1))
+ self.loadBtn.setText(QtWidgets.QApplication.translate("Form", "Run Example", None, -1))
+
diff --git a/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py b/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py
index 65a1386b..24bfd37d 100644
--- a/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py
+++ b/pyqtgraph/GraphicsScene/exportDialogTemplate_pyside2.py
@@ -1,64 +1,63 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file './pyqtgraph/GraphicsScene/exportDialogTemplate.ui'
-#
-# Created: Wed Mar 26 15:09:29 2014
-# by: PyQt5 UI code generator 5.0.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(241, 367)
- self.gridLayout = QtWidgets.QGridLayout(Form)
- self.gridLayout.setSpacing(0)
- self.gridLayout.setObjectName("gridLayout")
- self.label = QtWidgets.QLabel(Form)
- self.label.setObjectName("label")
- self.gridLayout.addWidget(self.label, 0, 0, 1, 3)
- self.itemTree = QtWidgets.QTreeWidget(Form)
- self.itemTree.setObjectName("itemTree")
- self.itemTree.headerItem().setText(0, "1")
- self.itemTree.header().setVisible(False)
- self.gridLayout.addWidget(self.itemTree, 1, 0, 1, 3)
- self.label_2 = QtWidgets.QLabel(Form)
- self.label_2.setObjectName("label_2")
- self.gridLayout.addWidget(self.label_2, 2, 0, 1, 3)
- self.formatList = QtWidgets.QListWidget(Form)
- self.formatList.setObjectName("formatList")
- self.gridLayout.addWidget(self.formatList, 3, 0, 1, 3)
- self.exportBtn = QtWidgets.QPushButton(Form)
- self.exportBtn.setObjectName("exportBtn")
- self.gridLayout.addWidget(self.exportBtn, 6, 1, 1, 1)
- self.closeBtn = QtWidgets.QPushButton(Form)
- self.closeBtn.setObjectName("closeBtn")
- self.gridLayout.addWidget(self.closeBtn, 6, 2, 1, 1)
- self.paramTree = ParameterTree(Form)
- self.paramTree.setObjectName("paramTree")
- self.paramTree.headerItem().setText(0, "1")
- self.paramTree.header().setVisible(False)
- self.gridLayout.addWidget(self.paramTree, 5, 0, 1, 3)
- self.label_3 = QtWidgets.QLabel(Form)
- self.label_3.setObjectName("label_3")
- self.gridLayout.addWidget(self.label_3, 4, 0, 1, 3)
- self.copyBtn = QtWidgets.QPushButton(Form)
- self.copyBtn.setObjectName("copyBtn")
- self.gridLayout.addWidget(self.copyBtn, 6, 0, 1, 1)
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Export"))
- self.label.setText(_translate("Form", "Item to export:"))
- self.label_2.setText(_translate("Form", "Export format"))
- self.exportBtn.setText(_translate("Form", "Export"))
- self.closeBtn.setText(_translate("Form", "Close"))
- self.label_3.setText(_translate("Form", "Export options"))
- self.copyBtn.setText(_translate("Form", "Copy"))
-
-from ..parametertree import ParameterTree
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'exportDialogTemplate.ui'
+#
+# Created: Sun Sep 18 19:19:58 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(241, 367)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.label = QtWidgets.QLabel(Form)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 3)
+ self.itemTree = QtWidgets.QTreeWidget(Form)
+ self.itemTree.setObjectName("itemTree")
+ self.itemTree.headerItem().setText(0, "1")
+ self.itemTree.header().setVisible(False)
+ self.gridLayout.addWidget(self.itemTree, 1, 0, 1, 3)
+ self.label_2 = QtWidgets.QLabel(Form)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 2, 0, 1, 3)
+ self.formatList = QtWidgets.QListWidget(Form)
+ self.formatList.setObjectName("formatList")
+ self.gridLayout.addWidget(self.formatList, 3, 0, 1, 3)
+ self.exportBtn = QtWidgets.QPushButton(Form)
+ self.exportBtn.setObjectName("exportBtn")
+ self.gridLayout.addWidget(self.exportBtn, 6, 1, 1, 1)
+ self.closeBtn = QtWidgets.QPushButton(Form)
+ self.closeBtn.setObjectName("closeBtn")
+ self.gridLayout.addWidget(self.closeBtn, 6, 2, 1, 1)
+ self.paramTree = ParameterTree(Form)
+ self.paramTree.setObjectName("paramTree")
+ self.paramTree.headerItem().setText(0, "1")
+ self.paramTree.header().setVisible(False)
+ self.gridLayout.addWidget(self.paramTree, 5, 0, 1, 3)
+ self.label_3 = QtWidgets.QLabel(Form)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout.addWidget(self.label_3, 4, 0, 1, 3)
+ self.copyBtn = QtWidgets.QPushButton(Form)
+ self.copyBtn.setObjectName("copyBtn")
+ self.gridLayout.addWidget(self.copyBtn, 6, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Export", None, -1))
+ self.label.setText(QtWidgets.QApplication.translate("Form", "Item to export:", None, -1))
+ self.label_2.setText(QtWidgets.QApplication.translate("Form", "Export format", None, -1))
+ self.exportBtn.setText(QtWidgets.QApplication.translate("Form", "Export", None, -1))
+ self.closeBtn.setText(QtWidgets.QApplication.translate("Form", "Close", None, -1))
+ self.label_3.setText(QtWidgets.QApplication.translate("Form", "Export options", None, -1))
+ self.copyBtn.setText(QtWidgets.QApplication.translate("Form", "Copy", None, -1))
+
+from ..parametertree import ParameterTree
diff --git a/pyqtgraph/canvas/CanvasTemplate_pyside2.py b/pyqtgraph/canvas/CanvasTemplate_pyside2.py
index e17bc5fe..884f0480 100644
--- a/pyqtgraph/canvas/CanvasTemplate_pyside2.py
+++ b/pyqtgraph/canvas/CanvasTemplate_pyside2.py
@@ -1,96 +1,87 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file './pyqtgraph/canvas/CanvasTemplate.ui'
-#
-# Created: Wed Mar 26 15:09:28 2014
-# by: PyQt5 UI code generator 5.0.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(490, 414)
- self.gridLayout = QtWidgets.QGridLayout(Form)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setSpacing(0)
- self.gridLayout.setObjectName("gridLayout")
- self.splitter = QtWidgets.QSplitter(Form)
- self.splitter.setOrientation(QtCore.Qt.Horizontal)
- self.splitter.setObjectName("splitter")
- self.view = GraphicsView(self.splitter)
- self.view.setObjectName("view")
- self.layoutWidget = QtWidgets.QWidget(self.splitter)
- self.layoutWidget.setObjectName("layoutWidget")
- self.gridLayout_2 = QtWidgets.QGridLayout(self.layoutWidget)
- self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
- self.gridLayout_2.setObjectName("gridLayout_2")
- self.storeSvgBtn = QtWidgets.QPushButton(self.layoutWidget)
- self.storeSvgBtn.setObjectName("storeSvgBtn")
- self.gridLayout_2.addWidget(self.storeSvgBtn, 1, 0, 1, 1)
- self.storePngBtn = QtWidgets.QPushButton(self.layoutWidget)
- self.storePngBtn.setObjectName("storePngBtn")
- self.gridLayout_2.addWidget(self.storePngBtn, 1, 1, 1, 1)
- self.autoRangeBtn = QtWidgets.QPushButton(self.layoutWidget)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(1)
- sizePolicy.setHeightForWidth(self.autoRangeBtn.sizePolicy().hasHeightForWidth())
- self.autoRangeBtn.setSizePolicy(sizePolicy)
- self.autoRangeBtn.setObjectName("autoRangeBtn")
- self.gridLayout_2.addWidget(self.autoRangeBtn, 3, 0, 1, 2)
- self.horizontalLayout = QtWidgets.QHBoxLayout()
- self.horizontalLayout.setSpacing(0)
- self.horizontalLayout.setObjectName("horizontalLayout")
- self.redirectCheck = QtWidgets.QCheckBox(self.layoutWidget)
- self.redirectCheck.setObjectName("redirectCheck")
- self.horizontalLayout.addWidget(self.redirectCheck)
- self.redirectCombo = CanvasCombo(self.layoutWidget)
- self.redirectCombo.setObjectName("redirectCombo")
- self.horizontalLayout.addWidget(self.redirectCombo)
- self.gridLayout_2.addLayout(self.horizontalLayout, 6, 0, 1, 2)
- self.itemList = TreeWidget(self.layoutWidget)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(100)
- sizePolicy.setHeightForWidth(self.itemList.sizePolicy().hasHeightForWidth())
- self.itemList.setSizePolicy(sizePolicy)
- self.itemList.setHeaderHidden(True)
- self.itemList.setObjectName("itemList")
- self.itemList.headerItem().setText(0, "1")
- self.gridLayout_2.addWidget(self.itemList, 7, 0, 1, 2)
- self.ctrlLayout = QtWidgets.QGridLayout()
- self.ctrlLayout.setSpacing(0)
- self.ctrlLayout.setObjectName("ctrlLayout")
- self.gridLayout_2.addLayout(self.ctrlLayout, 11, 0, 1, 2)
- self.resetTransformsBtn = QtWidgets.QPushButton(self.layoutWidget)
- self.resetTransformsBtn.setObjectName("resetTransformsBtn")
- self.gridLayout_2.addWidget(self.resetTransformsBtn, 8, 0, 1, 1)
- self.mirrorSelectionBtn = QtWidgets.QPushButton(self.layoutWidget)
- self.mirrorSelectionBtn.setObjectName("mirrorSelectionBtn")
- self.gridLayout_2.addWidget(self.mirrorSelectionBtn, 4, 0, 1, 1)
- self.reflectSelectionBtn = QtWidgets.QPushButton(self.layoutWidget)
- self.reflectSelectionBtn.setObjectName("reflectSelectionBtn")
- self.gridLayout_2.addWidget(self.reflectSelectionBtn, 4, 1, 1, 1)
- self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
- self.storeSvgBtn.setText(_translate("Form", "Store SVG"))
- self.storePngBtn.setText(_translate("Form", "Store PNG"))
- self.autoRangeBtn.setText(_translate("Form", "Auto Range"))
- self.redirectCheck.setToolTip(_translate("Form", "Check to display all local items in a remote canvas."))
- self.redirectCheck.setText(_translate("Form", "Redirect"))
- self.resetTransformsBtn.setText(_translate("Form", "Reset Transforms"))
- self.mirrorSelectionBtn.setText(_translate("Form", "Mirror Selection"))
- self.reflectSelectionBtn.setText(_translate("Form", "MirrorXY"))
-
-from ..widgets.GraphicsView import GraphicsView
-from ..widgets.TreeWidget import TreeWidget
-from CanvasManager import CanvasCombo
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'CanvasTemplate.ui'
+#
+# Created: Sun Sep 18 19:18:22 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(490, 414)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Horizontal)
+ self.splitter.setObjectName("splitter")
+ self.view = GraphicsView(self.splitter)
+ self.view.setObjectName("view")
+ self.layoutWidget = QtWidgets.QWidget(self.splitter)
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.layoutWidget)
+ self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.autoRangeBtn = QtWidgets.QPushButton(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(1)
+ sizePolicy.setHeightForWidth(self.autoRangeBtn.sizePolicy().hasHeightForWidth())
+ self.autoRangeBtn.setSizePolicy(sizePolicy)
+ self.autoRangeBtn.setObjectName("autoRangeBtn")
+ self.gridLayout_2.addWidget(self.autoRangeBtn, 2, 0, 1, 2)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setSpacing(0)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.redirectCheck = QtWidgets.QCheckBox(self.layoutWidget)
+ self.redirectCheck.setObjectName("redirectCheck")
+ self.horizontalLayout.addWidget(self.redirectCheck)
+ self.redirectCombo = CanvasCombo(self.layoutWidget)
+ self.redirectCombo.setObjectName("redirectCombo")
+ self.horizontalLayout.addWidget(self.redirectCombo)
+ self.gridLayout_2.addLayout(self.horizontalLayout, 5, 0, 1, 2)
+ self.itemList = TreeWidget(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(100)
+ sizePolicy.setHeightForWidth(self.itemList.sizePolicy().hasHeightForWidth())
+ self.itemList.setSizePolicy(sizePolicy)
+ self.itemList.setHeaderHidden(True)
+ self.itemList.setObjectName("itemList")
+ self.itemList.headerItem().setText(0, "1")
+ self.gridLayout_2.addWidget(self.itemList, 6, 0, 1, 2)
+ self.ctrlLayout = QtWidgets.QGridLayout()
+ self.ctrlLayout.setSpacing(0)
+ self.ctrlLayout.setObjectName("ctrlLayout")
+ self.gridLayout_2.addLayout(self.ctrlLayout, 10, 0, 1, 2)
+ self.resetTransformsBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.resetTransformsBtn.setObjectName("resetTransformsBtn")
+ self.gridLayout_2.addWidget(self.resetTransformsBtn, 7, 0, 1, 1)
+ self.mirrorSelectionBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.mirrorSelectionBtn.setObjectName("mirrorSelectionBtn")
+ self.gridLayout_2.addWidget(self.mirrorSelectionBtn, 3, 0, 1, 1)
+ self.reflectSelectionBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.reflectSelectionBtn.setObjectName("reflectSelectionBtn")
+ self.gridLayout_2.addWidget(self.reflectSelectionBtn, 3, 1, 1, 1)
+ self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+ self.autoRangeBtn.setText(QtWidgets.QApplication.translate("Form", "Auto Range", None, -1))
+ self.redirectCheck.setToolTip(QtWidgets.QApplication.translate("Form", "Check to display all local items in a remote canvas.", None, -1))
+ self.redirectCheck.setText(QtWidgets.QApplication.translate("Form", "Redirect", None, -1))
+ self.resetTransformsBtn.setText(QtWidgets.QApplication.translate("Form", "Reset Transforms", None, -1))
+ self.mirrorSelectionBtn.setText(QtWidgets.QApplication.translate("Form", "Mirror Selection", None, -1))
+ self.reflectSelectionBtn.setText(QtWidgets.QApplication.translate("Form", "MirrorXY", None, -1))
+
+from ..widgets.TreeWidget import TreeWidget
+from CanvasManager import CanvasCombo
+from ..widgets.GraphicsView import GraphicsView
diff --git a/pyqtgraph/canvas/TransformGuiTemplate_pyside2.py b/pyqtgraph/canvas/TransformGuiTemplate_pyside2.py
index 253a40d7..06883270 100644
--- a/pyqtgraph/canvas/TransformGuiTemplate_pyside2.py
+++ b/pyqtgraph/canvas/TransformGuiTemplate_pyside2.py
@@ -1,56 +1,55 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file './pyqtgraph/canvas/TransformGuiTemplate.ui'
-#
-# Created: Wed Mar 26 15:09:28 2014
-# by: PyQt5 UI code generator 5.0.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(224, 117)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
- Form.setSizePolicy(sizePolicy)
- self.verticalLayout = QtWidgets.QVBoxLayout(Form)
- self.verticalLayout.setSpacing(1)
- self.verticalLayout.setContentsMargins(0, 0, 0, 0)
- self.verticalLayout.setObjectName("verticalLayout")
- self.translateLabel = QtWidgets.QLabel(Form)
- self.translateLabel.setObjectName("translateLabel")
- self.verticalLayout.addWidget(self.translateLabel)
- self.rotateLabel = QtWidgets.QLabel(Form)
- self.rotateLabel.setObjectName("rotateLabel")
- self.verticalLayout.addWidget(self.rotateLabel)
- self.scaleLabel = QtWidgets.QLabel(Form)
- self.scaleLabel.setObjectName("scaleLabel")
- self.verticalLayout.addWidget(self.scaleLabel)
- self.horizontalLayout = QtWidgets.QHBoxLayout()
- self.horizontalLayout.setObjectName("horizontalLayout")
- self.mirrorImageBtn = QtWidgets.QPushButton(Form)
- self.mirrorImageBtn.setToolTip("")
- self.mirrorImageBtn.setObjectName("mirrorImageBtn")
- self.horizontalLayout.addWidget(self.mirrorImageBtn)
- self.reflectImageBtn = QtWidgets.QPushButton(Form)
- self.reflectImageBtn.setObjectName("reflectImageBtn")
- self.horizontalLayout.addWidget(self.reflectImageBtn)
- self.verticalLayout.addLayout(self.horizontalLayout)
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
- self.translateLabel.setText(_translate("Form", "Translate:"))
- self.rotateLabel.setText(_translate("Form", "Rotate:"))
- self.scaleLabel.setText(_translate("Form", "Scale:"))
- self.mirrorImageBtn.setText(_translate("Form", "Mirror"))
- self.reflectImageBtn.setText(_translate("Form", "Reflect"))
-
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'TransformGuiTemplate.ui'
+#
+# Created: Sun Sep 18 19:18:41 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(224, 117)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
+ Form.setSizePolicy(sizePolicy)
+ self.verticalLayout = QtWidgets.QVBoxLayout(Form)
+ self.verticalLayout.setSpacing(1)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.translateLabel = QtWidgets.QLabel(Form)
+ self.translateLabel.setObjectName("translateLabel")
+ self.verticalLayout.addWidget(self.translateLabel)
+ self.rotateLabel = QtWidgets.QLabel(Form)
+ self.rotateLabel.setObjectName("rotateLabel")
+ self.verticalLayout.addWidget(self.rotateLabel)
+ self.scaleLabel = QtWidgets.QLabel(Form)
+ self.scaleLabel.setObjectName("scaleLabel")
+ self.verticalLayout.addWidget(self.scaleLabel)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.mirrorImageBtn = QtWidgets.QPushButton(Form)
+ self.mirrorImageBtn.setToolTip("")
+ self.mirrorImageBtn.setObjectName("mirrorImageBtn")
+ self.horizontalLayout.addWidget(self.mirrorImageBtn)
+ self.reflectImageBtn = QtWidgets.QPushButton(Form)
+ self.reflectImageBtn.setObjectName("reflectImageBtn")
+ self.horizontalLayout.addWidget(self.reflectImageBtn)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+ self.translateLabel.setText(QtWidgets.QApplication.translate("Form", "Translate:", None, -1))
+ self.rotateLabel.setText(QtWidgets.QApplication.translate("Form", "Rotate:", None, -1))
+ self.scaleLabel.setText(QtWidgets.QApplication.translate("Form", "Scale:", None, -1))
+ self.mirrorImageBtn.setText(QtWidgets.QApplication.translate("Form", "Mirror", None, -1))
+ self.reflectImageBtn.setText(QtWidgets.QApplication.translate("Form", "Reflect", None, -1))
+
diff --git a/pyqtgraph/console/template_pyside2.py b/pyqtgraph/console/template_pyside2.py
index c82354a2..361e96f2 100644
--- a/pyqtgraph/console/template_pyside2.py
+++ b/pyqtgraph/console/template_pyside2.py
@@ -1,107 +1,113 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file './pyqtgraph/console/template.ui'
-#
-# Created: Wed Mar 26 15:09:29 2014
-# by: PyQt5 UI code generator 5.0.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(710, 497)
- self.gridLayout = QtWidgets.QGridLayout(Form)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setSpacing(0)
- self.gridLayout.setObjectName("gridLayout")
- self.splitter = QtWidgets.QSplitter(Form)
- self.splitter.setOrientation(QtCore.Qt.Vertical)
- self.splitter.setObjectName("splitter")
- self.layoutWidget = QtWidgets.QWidget(self.splitter)
- self.layoutWidget.setObjectName("layoutWidget")
- self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
- self.verticalLayout.setContentsMargins(0, 0, 0, 0)
- self.verticalLayout.setObjectName("verticalLayout")
- self.output = QtWidgets.QPlainTextEdit(self.layoutWidget)
- font = QtGui.QFont()
- font.setFamily("Monospace")
- self.output.setFont(font)
- self.output.setReadOnly(True)
- self.output.setObjectName("output")
- self.verticalLayout.addWidget(self.output)
- self.horizontalLayout = QtWidgets.QHBoxLayout()
- self.horizontalLayout.setObjectName("horizontalLayout")
- self.input = CmdInput(self.layoutWidget)
- self.input.setObjectName("input")
- self.horizontalLayout.addWidget(self.input)
- self.historyBtn = QtWidgets.QPushButton(self.layoutWidget)
- self.historyBtn.setCheckable(True)
- self.historyBtn.setObjectName("historyBtn")
- self.horizontalLayout.addWidget(self.historyBtn)
- self.exceptionBtn = QtWidgets.QPushButton(self.layoutWidget)
- self.exceptionBtn.setCheckable(True)
- self.exceptionBtn.setObjectName("exceptionBtn")
- self.horizontalLayout.addWidget(self.exceptionBtn)
- self.verticalLayout.addLayout(self.horizontalLayout)
- self.historyList = QtWidgets.QListWidget(self.splitter)
- font = QtGui.QFont()
- font.setFamily("Monospace")
- self.historyList.setFont(font)
- self.historyList.setObjectName("historyList")
- self.exceptionGroup = QtWidgets.QGroupBox(self.splitter)
- self.exceptionGroup.setObjectName("exceptionGroup")
- self.gridLayout_2 = QtWidgets.QGridLayout(self.exceptionGroup)
- self.gridLayout_2.setSpacing(0)
- self.gridLayout_2.setContentsMargins(-1, 0, -1, 0)
- self.gridLayout_2.setObjectName("gridLayout_2")
- self.catchAllExceptionsBtn = QtWidgets.QPushButton(self.exceptionGroup)
- self.catchAllExceptionsBtn.setCheckable(True)
- self.catchAllExceptionsBtn.setObjectName("catchAllExceptionsBtn")
- self.gridLayout_2.addWidget(self.catchAllExceptionsBtn, 0, 1, 1, 1)
- self.catchNextExceptionBtn = QtWidgets.QPushButton(self.exceptionGroup)
- self.catchNextExceptionBtn.setCheckable(True)
- self.catchNextExceptionBtn.setObjectName("catchNextExceptionBtn")
- self.gridLayout_2.addWidget(self.catchNextExceptionBtn, 0, 0, 1, 1)
- self.onlyUncaughtCheck = QtWidgets.QCheckBox(self.exceptionGroup)
- self.onlyUncaughtCheck.setChecked(True)
- self.onlyUncaughtCheck.setObjectName("onlyUncaughtCheck")
- self.gridLayout_2.addWidget(self.onlyUncaughtCheck, 0, 2, 1, 1)
- self.exceptionStackList = QtWidgets.QListWidget(self.exceptionGroup)
- self.exceptionStackList.setAlternatingRowColors(True)
- self.exceptionStackList.setObjectName("exceptionStackList")
- self.gridLayout_2.addWidget(self.exceptionStackList, 2, 0, 1, 5)
- self.runSelectedFrameCheck = QtWidgets.QCheckBox(self.exceptionGroup)
- self.runSelectedFrameCheck.setChecked(True)
- self.runSelectedFrameCheck.setObjectName("runSelectedFrameCheck")
- self.gridLayout_2.addWidget(self.runSelectedFrameCheck, 3, 0, 1, 5)
- self.exceptionInfoLabel = QtWidgets.QLabel(self.exceptionGroup)
- self.exceptionInfoLabel.setObjectName("exceptionInfoLabel")
- self.gridLayout_2.addWidget(self.exceptionInfoLabel, 1, 0, 1, 5)
- self.clearExceptionBtn = QtWidgets.QPushButton(self.exceptionGroup)
- self.clearExceptionBtn.setEnabled(False)
- self.clearExceptionBtn.setObjectName("clearExceptionBtn")
- self.gridLayout_2.addWidget(self.clearExceptionBtn, 0, 4, 1, 1)
- spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.gridLayout_2.addItem(spacerItem, 0, 3, 1, 1)
- self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Console"))
- self.historyBtn.setText(_translate("Form", "History.."))
- self.exceptionBtn.setText(_translate("Form", "Exceptions.."))
- self.exceptionGroup.setTitle(_translate("Form", "Exception Handling"))
- self.catchAllExceptionsBtn.setText(_translate("Form", "Show All Exceptions"))
- self.catchNextExceptionBtn.setText(_translate("Form", "Show Next Exception"))
- self.onlyUncaughtCheck.setText(_translate("Form", "Only Uncaught Exceptions"))
- self.runSelectedFrameCheck.setText(_translate("Form", "Run commands in selected stack frame"))
- self.exceptionInfoLabel.setText(_translate("Form", "Exception Info"))
- self.clearExceptionBtn.setText(_translate("Form", "Clear Exception"))
-
-from .CmdInput import CmdInput
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'template.ui'
+#
+# Created: Sun Sep 18 19:19:10 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(694, 497)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Vertical)
+ self.splitter.setObjectName("splitter")
+ self.layoutWidget = QtWidgets.QWidget(self.splitter)
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.output = QtWidgets.QPlainTextEdit(self.layoutWidget)
+ font = QtGui.QFont()
+ font.setFamily("Monospace")
+ self.output.setFont(font)
+ self.output.setReadOnly(True)
+ self.output.setObjectName("output")
+ self.verticalLayout.addWidget(self.output)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.input = CmdInput(self.layoutWidget)
+ self.input.setObjectName("input")
+ self.horizontalLayout.addWidget(self.input)
+ self.historyBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.historyBtn.setCheckable(True)
+ self.historyBtn.setObjectName("historyBtn")
+ self.horizontalLayout.addWidget(self.historyBtn)
+ self.exceptionBtn = QtWidgets.QPushButton(self.layoutWidget)
+ self.exceptionBtn.setCheckable(True)
+ self.exceptionBtn.setObjectName("exceptionBtn")
+ self.horizontalLayout.addWidget(self.exceptionBtn)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.historyList = QtWidgets.QListWidget(self.splitter)
+ font = QtGui.QFont()
+ font.setFamily("Monospace")
+ self.historyList.setFont(font)
+ self.historyList.setObjectName("historyList")
+ self.exceptionGroup = QtWidgets.QGroupBox(self.splitter)
+ self.exceptionGroup.setObjectName("exceptionGroup")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.exceptionGroup)
+ self.gridLayout_2.setSpacing(0)
+ self.gridLayout_2.setContentsMargins(-1, 0, -1, 0)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.clearExceptionBtn = QtWidgets.QPushButton(self.exceptionGroup)
+ self.clearExceptionBtn.setEnabled(False)
+ self.clearExceptionBtn.setObjectName("clearExceptionBtn")
+ self.gridLayout_2.addWidget(self.clearExceptionBtn, 0, 6, 1, 1)
+ self.catchAllExceptionsBtn = QtWidgets.QPushButton(self.exceptionGroup)
+ self.catchAllExceptionsBtn.setCheckable(True)
+ self.catchAllExceptionsBtn.setObjectName("catchAllExceptionsBtn")
+ self.gridLayout_2.addWidget(self.catchAllExceptionsBtn, 0, 1, 1, 1)
+ self.catchNextExceptionBtn = QtWidgets.QPushButton(self.exceptionGroup)
+ self.catchNextExceptionBtn.setCheckable(True)
+ self.catchNextExceptionBtn.setObjectName("catchNextExceptionBtn")
+ self.gridLayout_2.addWidget(self.catchNextExceptionBtn, 0, 0, 1, 1)
+ self.onlyUncaughtCheck = QtWidgets.QCheckBox(self.exceptionGroup)
+ self.onlyUncaughtCheck.setChecked(True)
+ self.onlyUncaughtCheck.setObjectName("onlyUncaughtCheck")
+ self.gridLayout_2.addWidget(self.onlyUncaughtCheck, 0, 4, 1, 1)
+ self.exceptionStackList = QtWidgets.QListWidget(self.exceptionGroup)
+ self.exceptionStackList.setAlternatingRowColors(True)
+ self.exceptionStackList.setObjectName("exceptionStackList")
+ self.gridLayout_2.addWidget(self.exceptionStackList, 2, 0, 1, 7)
+ self.runSelectedFrameCheck = QtWidgets.QCheckBox(self.exceptionGroup)
+ self.runSelectedFrameCheck.setChecked(True)
+ self.runSelectedFrameCheck.setObjectName("runSelectedFrameCheck")
+ self.gridLayout_2.addWidget(self.runSelectedFrameCheck, 3, 0, 1, 7)
+ self.exceptionInfoLabel = QtWidgets.QLabel(self.exceptionGroup)
+ self.exceptionInfoLabel.setObjectName("exceptionInfoLabel")
+ self.gridLayout_2.addWidget(self.exceptionInfoLabel, 1, 0, 1, 7)
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.gridLayout_2.addItem(spacerItem, 0, 5, 1, 1)
+ self.label = QtWidgets.QLabel(self.exceptionGroup)
+ self.label.setObjectName("label")
+ self.gridLayout_2.addWidget(self.label, 0, 2, 1, 1)
+ self.filterText = QtWidgets.QLineEdit(self.exceptionGroup)
+ self.filterText.setObjectName("filterText")
+ self.gridLayout_2.addWidget(self.filterText, 0, 3, 1, 1)
+ self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Console", None, -1))
+ self.historyBtn.setText(QtWidgets.QApplication.translate("Form", "History..", None, -1))
+ self.exceptionBtn.setText(QtWidgets.QApplication.translate("Form", "Exceptions..", None, -1))
+ self.exceptionGroup.setTitle(QtWidgets.QApplication.translate("Form", "Exception Handling", None, -1))
+ self.clearExceptionBtn.setText(QtWidgets.QApplication.translate("Form", "Clear Exception", None, -1))
+ self.catchAllExceptionsBtn.setText(QtWidgets.QApplication.translate("Form", "Show All Exceptions", None, -1))
+ self.catchNextExceptionBtn.setText(QtWidgets.QApplication.translate("Form", "Show Next Exception", None, -1))
+ self.onlyUncaughtCheck.setText(QtWidgets.QApplication.translate("Form", "Only Uncaught Exceptions", None, -1))
+ self.runSelectedFrameCheck.setText(QtWidgets.QApplication.translate("Form", "Run commands in selected stack frame", None, -1))
+ self.exceptionInfoLabel.setText(QtWidgets.QApplication.translate("Form", "Exception Info", None, -1))
+ self.label.setText(QtWidgets.QApplication.translate("Form", "Filter (regex):", None, -1))
+
+from .CmdInput import CmdInput
diff --git a/pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py b/pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py
index 84593c8a..86fbf5d9 100644
--- a/pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py
+++ b/pyqtgraph/flowchart/FlowchartCtrlTemplate_pyside2.py
@@ -1,67 +1,66 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file './pyqtgraph/flowchart/FlowchartCtrlTemplate.ui'
-#
-# Created: Wed Mar 26 15:09:28 2014
-# by: PyQt5 UI code generator 5.0.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(217, 499)
- self.gridLayout = QtWidgets.QGridLayout(Form)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setVerticalSpacing(0)
- self.gridLayout.setObjectName("gridLayout")
- self.loadBtn = QtWidgets.QPushButton(Form)
- self.loadBtn.setObjectName("loadBtn")
- self.gridLayout.addWidget(self.loadBtn, 1, 0, 1, 1)
- self.saveBtn = FeedbackButton(Form)
- self.saveBtn.setObjectName("saveBtn")
- self.gridLayout.addWidget(self.saveBtn, 1, 1, 1, 2)
- self.saveAsBtn = FeedbackButton(Form)
- self.saveAsBtn.setObjectName("saveAsBtn")
- self.gridLayout.addWidget(self.saveAsBtn, 1, 3, 1, 1)
- self.reloadBtn = FeedbackButton(Form)
- self.reloadBtn.setCheckable(False)
- self.reloadBtn.setFlat(False)
- self.reloadBtn.setObjectName("reloadBtn")
- self.gridLayout.addWidget(self.reloadBtn, 4, 0, 1, 2)
- self.showChartBtn = QtWidgets.QPushButton(Form)
- self.showChartBtn.setCheckable(True)
- self.showChartBtn.setObjectName("showChartBtn")
- self.gridLayout.addWidget(self.showChartBtn, 4, 2, 1, 2)
- self.ctrlList = TreeWidget(Form)
- self.ctrlList.setObjectName("ctrlList")
- self.ctrlList.headerItem().setText(0, "1")
- self.ctrlList.header().setVisible(False)
- self.ctrlList.header().setStretchLastSection(False)
- self.gridLayout.addWidget(self.ctrlList, 3, 0, 1, 4)
- self.fileNameLabel = QtWidgets.QLabel(Form)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.fileNameLabel.setFont(font)
- self.fileNameLabel.setText("")
- self.fileNameLabel.setAlignment(QtCore.Qt.AlignCenter)
- self.fileNameLabel.setObjectName("fileNameLabel")
- self.gridLayout.addWidget(self.fileNameLabel, 0, 1, 1, 1)
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
- self.loadBtn.setText(_translate("Form", "Load.."))
- self.saveBtn.setText(_translate("Form", "Save"))
- self.saveAsBtn.setText(_translate("Form", "As.."))
- self.reloadBtn.setText(_translate("Form", "Reload Libs"))
- self.showChartBtn.setText(_translate("Form", "Flowchart"))
-
-from ..widgets.FeedbackButton import FeedbackButton
-from ..widgets.TreeWidget import TreeWidget
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'FlowchartCtrlTemplate.ui'
+#
+# Created: Sun Sep 18 19:16:46 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(217, 499)
+ self.gridLayout = QtWidgets.QGridLayout(Form)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setVerticalSpacing(0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.loadBtn = QtWidgets.QPushButton(Form)
+ self.loadBtn.setObjectName("loadBtn")
+ self.gridLayout.addWidget(self.loadBtn, 1, 0, 1, 1)
+ self.saveBtn = FeedbackButton(Form)
+ self.saveBtn.setObjectName("saveBtn")
+ self.gridLayout.addWidget(self.saveBtn, 1, 1, 1, 2)
+ self.saveAsBtn = FeedbackButton(Form)
+ self.saveAsBtn.setObjectName("saveAsBtn")
+ self.gridLayout.addWidget(self.saveAsBtn, 1, 3, 1, 1)
+ self.reloadBtn = FeedbackButton(Form)
+ self.reloadBtn.setCheckable(False)
+ self.reloadBtn.setFlat(False)
+ self.reloadBtn.setObjectName("reloadBtn")
+ self.gridLayout.addWidget(self.reloadBtn, 4, 0, 1, 2)
+ self.showChartBtn = QtWidgets.QPushButton(Form)
+ self.showChartBtn.setCheckable(True)
+ self.showChartBtn.setObjectName("showChartBtn")
+ self.gridLayout.addWidget(self.showChartBtn, 4, 2, 1, 2)
+ self.ctrlList = TreeWidget(Form)
+ self.ctrlList.setObjectName("ctrlList")
+ self.ctrlList.headerItem().setText(0, "1")
+ self.ctrlList.header().setVisible(False)
+ self.ctrlList.header().setStretchLastSection(False)
+ self.gridLayout.addWidget(self.ctrlList, 3, 0, 1, 4)
+ self.fileNameLabel = QtWidgets.QLabel(Form)
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.fileNameLabel.setFont(font)
+ self.fileNameLabel.setText("")
+ self.fileNameLabel.setAlignment(QtCore.Qt.AlignCenter)
+ self.fileNameLabel.setObjectName("fileNameLabel")
+ self.gridLayout.addWidget(self.fileNameLabel, 0, 1, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+ self.loadBtn.setText(QtWidgets.QApplication.translate("Form", "Load..", None, -1))
+ self.saveBtn.setText(QtWidgets.QApplication.translate("Form", "Save", None, -1))
+ self.saveAsBtn.setText(QtWidgets.QApplication.translate("Form", "As..", None, -1))
+ self.reloadBtn.setText(QtWidgets.QApplication.translate("Form", "Reload Libs", None, -1))
+ self.showChartBtn.setText(QtWidgets.QApplication.translate("Form", "Flowchart", None, -1))
+
+from ..widgets.FeedbackButton import FeedbackButton
+from ..widgets.TreeWidget import TreeWidget
diff --git a/pyqtgraph/flowchart/FlowchartTemplate_pyside2.py b/pyqtgraph/flowchart/FlowchartTemplate_pyside2.py
index ae2c9a92..58fd6775 100644
--- a/pyqtgraph/flowchart/FlowchartTemplate_pyside2.py
+++ b/pyqtgraph/flowchart/FlowchartTemplate_pyside2.py
@@ -1,55 +1,54 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file './pyqtgraph/flowchart/FlowchartTemplate.ui'
-#
-# Created: Wed Mar 26 15:09:28 2014
-# by: PyQt5 UI code generator 5.0.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(529, 329)
- self.selInfoWidget = QtWidgets.QWidget(Form)
- self.selInfoWidget.setGeometry(QtCore.QRect(260, 10, 264, 222))
- self.selInfoWidget.setObjectName("selInfoWidget")
- self.gridLayout = QtWidgets.QGridLayout(self.selInfoWidget)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setObjectName("gridLayout")
- self.selDescLabel = QtWidgets.QLabel(self.selInfoWidget)
- self.selDescLabel.setText("")
- self.selDescLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.selDescLabel.setWordWrap(True)
- self.selDescLabel.setObjectName("selDescLabel")
- self.gridLayout.addWidget(self.selDescLabel, 0, 0, 1, 1)
- self.selNameLabel = QtWidgets.QLabel(self.selInfoWidget)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.selNameLabel.setFont(font)
- self.selNameLabel.setText("")
- self.selNameLabel.setObjectName("selNameLabel")
- self.gridLayout.addWidget(self.selNameLabel, 0, 1, 1, 1)
- self.selectedTree = DataTreeWidget(self.selInfoWidget)
- self.selectedTree.setObjectName("selectedTree")
- self.selectedTree.headerItem().setText(0, "1")
- self.gridLayout.addWidget(self.selectedTree, 1, 0, 1, 2)
- self.hoverText = QtWidgets.QTextEdit(Form)
- self.hoverText.setGeometry(QtCore.QRect(0, 240, 521, 81))
- self.hoverText.setObjectName("hoverText")
- self.view = FlowchartGraphicsView(Form)
- self.view.setGeometry(QtCore.QRect(0, 0, 256, 192))
- self.view.setObjectName("view")
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
-
-from ..widgets.DataTreeWidget import DataTreeWidget
-from ..flowchart.FlowchartGraphicsView import FlowchartGraphicsView
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'FlowchartTemplate.ui'
+#
+# Created: Sun Sep 18 19:16:03 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(529, 329)
+ self.selInfoWidget = QtWidgets.QWidget(Form)
+ self.selInfoWidget.setGeometry(QtCore.QRect(260, 10, 264, 222))
+ self.selInfoWidget.setObjectName("selInfoWidget")
+ self.gridLayout = QtWidgets.QGridLayout(self.selInfoWidget)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.selDescLabel = QtWidgets.QLabel(self.selInfoWidget)
+ self.selDescLabel.setText("")
+ self.selDescLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
+ self.selDescLabel.setWordWrap(True)
+ self.selDescLabel.setObjectName("selDescLabel")
+ self.gridLayout.addWidget(self.selDescLabel, 0, 0, 1, 1)
+ self.selNameLabel = QtWidgets.QLabel(self.selInfoWidget)
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.selNameLabel.setFont(font)
+ self.selNameLabel.setText("")
+ self.selNameLabel.setObjectName("selNameLabel")
+ self.gridLayout.addWidget(self.selNameLabel, 0, 1, 1, 1)
+ self.selectedTree = DataTreeWidget(self.selInfoWidget)
+ self.selectedTree.setObjectName("selectedTree")
+ self.selectedTree.headerItem().setText(0, "1")
+ self.gridLayout.addWidget(self.selectedTree, 1, 0, 1, 2)
+ self.hoverText = QtWidgets.QTextEdit(Form)
+ self.hoverText.setGeometry(QtCore.QRect(0, 240, 521, 81))
+ self.hoverText.setObjectName("hoverText")
+ self.view = FlowchartGraphicsView(Form)
+ self.view.setGeometry(QtCore.QRect(0, 0, 256, 192))
+ self.view.setObjectName("view")
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+
+from ..flowchart.FlowchartGraphicsView import FlowchartGraphicsView
+from ..widgets.DataTreeWidget import DataTreeWidget
diff --git a/pyqtgraph/imageview/ImageViewTemplate_pyside2.py b/pyqtgraph/imageview/ImageViewTemplate_pyside2.py
index 70b76635..74ea308d 100644
--- a/pyqtgraph/imageview/ImageViewTemplate_pyside2.py
+++ b/pyqtgraph/imageview/ImageViewTemplate_pyside2.py
@@ -1,156 +1,154 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file './pyqtgraph/imageview/ImageViewTemplate.ui'
-#
-# Created: Wed Mar 26 15:09:28 2014
-# by: PyQt5 UI code generator 5.0.1
-#
-# WARNING! All changes made in this file will be lost!
-
-from PySide2 import QtCore, QtGui, QtWidgets
-
-class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(726, 588)
- self.gridLayout_3 = QtWidgets.QGridLayout(Form)
- self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
- self.gridLayout_3.setSpacing(0)
- self.gridLayout_3.setObjectName("gridLayout_3")
- self.splitter = QtWidgets.QSplitter(Form)
- self.splitter.setOrientation(QtCore.Qt.Vertical)
- self.splitter.setObjectName("splitter")
- self.layoutWidget = QtWidgets.QWidget(self.splitter)
- self.layoutWidget.setObjectName("layoutWidget")
- self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
- self.gridLayout.setSpacing(0)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setObjectName("gridLayout")
- self.graphicsView = GraphicsView(self.layoutWidget)
- self.graphicsView.setObjectName("graphicsView")
- self.gridLayout.addWidget(self.graphicsView, 0, 0, 2, 1)
- self.histogram = HistogramLUTWidget(self.layoutWidget)
- self.histogram.setObjectName("histogram")
- self.gridLayout.addWidget(self.histogram, 0, 1, 1, 2)
- self.roiBtn = QtWidgets.QPushButton(self.layoutWidget)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(1)
- sizePolicy.setHeightForWidth(self.roiBtn.sizePolicy().hasHeightForWidth())
- self.roiBtn.setSizePolicy(sizePolicy)
- self.roiBtn.setCheckable(True)
- self.roiBtn.setObjectName("roiBtn")
- self.gridLayout.addWidget(self.roiBtn, 1, 1, 1, 1)
- self.menuBtn = QtWidgets.QPushButton(self.layoutWidget)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(1)
- sizePolicy.setHeightForWidth(self.menuBtn.sizePolicy().hasHeightForWidth())
- self.menuBtn.setSizePolicy(sizePolicy)
- self.menuBtn.setCheckable(True)
- self.menuBtn.setObjectName("menuBtn")
- self.gridLayout.addWidget(self.menuBtn, 1, 2, 1, 1)
- self.roiPlot = PlotWidget(self.splitter)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.roiPlot.sizePolicy().hasHeightForWidth())
- self.roiPlot.setSizePolicy(sizePolicy)
- self.roiPlot.setMinimumSize(QtCore.QSize(0, 40))
- self.roiPlot.setObjectName("roiPlot")
- self.gridLayout_3.addWidget(self.splitter, 0, 0, 1, 1)
- self.normGroup = QtWidgets.QGroupBox(Form)
- self.normGroup.setObjectName("normGroup")
- self.gridLayout_2 = QtWidgets.QGridLayout(self.normGroup)
- self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
- self.gridLayout_2.setSpacing(0)
- self.gridLayout_2.setObjectName("gridLayout_2")
- self.normSubtractRadio = QtWidgets.QRadioButton(self.normGroup)
- self.normSubtractRadio.setObjectName("normSubtractRadio")
- self.gridLayout_2.addWidget(self.normSubtractRadio, 0, 2, 1, 1)
- self.normDivideRadio = QtWidgets.QRadioButton(self.normGroup)
- self.normDivideRadio.setChecked(False)
- self.normDivideRadio.setObjectName("normDivideRadio")
- self.gridLayout_2.addWidget(self.normDivideRadio, 0, 1, 1, 1)
- self.label_5 = QtWidgets.QLabel(self.normGroup)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.label_5.setFont(font)
- self.label_5.setObjectName("label_5")
- self.gridLayout_2.addWidget(self.label_5, 0, 0, 1, 1)
- self.label_3 = QtWidgets.QLabel(self.normGroup)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.label_3.setFont(font)
- self.label_3.setObjectName("label_3")
- self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
- self.label_4 = QtWidgets.QLabel(self.normGroup)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.label_4.setFont(font)
- self.label_4.setObjectName("label_4")
- self.gridLayout_2.addWidget(self.label_4, 2, 0, 1, 1)
- self.normROICheck = QtWidgets.QCheckBox(self.normGroup)
- self.normROICheck.setObjectName("normROICheck")
- self.gridLayout_2.addWidget(self.normROICheck, 1, 1, 1, 1)
- self.normXBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
- self.normXBlurSpin.setObjectName("normXBlurSpin")
- self.gridLayout_2.addWidget(self.normXBlurSpin, 2, 2, 1, 1)
- self.label_8 = QtWidgets.QLabel(self.normGroup)
- self.label_8.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.label_8.setObjectName("label_8")
- self.gridLayout_2.addWidget(self.label_8, 2, 1, 1, 1)
- self.label_9 = QtWidgets.QLabel(self.normGroup)
- self.label_9.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.label_9.setObjectName("label_9")
- self.gridLayout_2.addWidget(self.label_9, 2, 3, 1, 1)
- self.normYBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
- self.normYBlurSpin.setObjectName("normYBlurSpin")
- self.gridLayout_2.addWidget(self.normYBlurSpin, 2, 4, 1, 1)
- self.label_10 = QtWidgets.QLabel(self.normGroup)
- self.label_10.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.label_10.setObjectName("label_10")
- self.gridLayout_2.addWidget(self.label_10, 2, 5, 1, 1)
- self.normOffRadio = QtWidgets.QRadioButton(self.normGroup)
- self.normOffRadio.setChecked(True)
- self.normOffRadio.setObjectName("normOffRadio")
- self.gridLayout_2.addWidget(self.normOffRadio, 0, 3, 1, 1)
- self.normTimeRangeCheck = QtWidgets.QCheckBox(self.normGroup)
- self.normTimeRangeCheck.setObjectName("normTimeRangeCheck")
- self.gridLayout_2.addWidget(self.normTimeRangeCheck, 1, 3, 1, 1)
- self.normFrameCheck = QtWidgets.QCheckBox(self.normGroup)
- self.normFrameCheck.setObjectName("normFrameCheck")
- self.gridLayout_2.addWidget(self.normFrameCheck, 1, 2, 1, 1)
- self.normTBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
- self.normTBlurSpin.setObjectName("normTBlurSpin")
- self.gridLayout_2.addWidget(self.normTBlurSpin, 2, 6, 1, 1)
- self.gridLayout_3.addWidget(self.normGroup, 1, 0, 1, 1)
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
- self.roiBtn.setText(_translate("Form", "ROI"))
- self.menuBtn.setText(_translate("Form", "Norm"))
- self.normGroup.setTitle(_translate("Form", "Normalization"))
- self.normSubtractRadio.setText(_translate("Form", "Subtract"))
- self.normDivideRadio.setText(_translate("Form", "Divide"))
- self.label_5.setText(_translate("Form", "Operation:"))
- self.label_3.setText(_translate("Form", "Mean:"))
- self.label_4.setText(_translate("Form", "Blur:"))
- self.normROICheck.setText(_translate("Form", "ROI"))
- self.label_8.setText(_translate("Form", "X"))
- self.label_9.setText(_translate("Form", "Y"))
- self.label_10.setText(_translate("Form", "T"))
- self.normOffRadio.setText(_translate("Form", "Off"))
- self.normTimeRangeCheck.setText(_translate("Form", "Time range"))
- self.normFrameCheck.setText(_translate("Form", "Frame"))
-
-from ..widgets.HistogramLUTWidget import HistogramLUTWidget
-from ..widgets.PlotWidget import PlotWidget
-from ..widgets.GraphicsView import GraphicsView
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'ImageViewTemplate.ui'
+#
+# Created: Sun Sep 18 19:17:41 2016
+# by: pyside2-uic running on PySide2 2.0.0~alpha0
+#
+# WARNING! All changes made in this file will be lost!
+
+from PySide2 import QtCore, QtGui, QtWidgets
+
+class Ui_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(726, 588)
+ self.gridLayout_3 = QtWidgets.QGridLayout(Form)
+ self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_3.setSpacing(0)
+ self.gridLayout_3.setObjectName("gridLayout_3")
+ self.splitter = QtWidgets.QSplitter(Form)
+ self.splitter.setOrientation(QtCore.Qt.Vertical)
+ self.splitter.setObjectName("splitter")
+ self.layoutWidget = QtWidgets.QWidget(self.splitter)
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
+ self.gridLayout.setSpacing(0)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.graphicsView = GraphicsView(self.layoutWidget)
+ self.graphicsView.setObjectName("graphicsView")
+ self.gridLayout.addWidget(self.graphicsView, 0, 0, 2, 1)
+ self.histogram = HistogramLUTWidget(self.layoutWidget)
+ self.histogram.setObjectName("histogram")
+ self.gridLayout.addWidget(self.histogram, 0, 1, 1, 2)
+ self.roiBtn = QtWidgets.QPushButton(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(1)
+ sizePolicy.setHeightForWidth(self.roiBtn.sizePolicy().hasHeightForWidth())
+ self.roiBtn.setSizePolicy(sizePolicy)
+ self.roiBtn.setCheckable(True)
+ self.roiBtn.setObjectName("roiBtn")
+ self.gridLayout.addWidget(self.roiBtn, 1, 1, 1, 1)
+ self.menuBtn = QtWidgets.QPushButton(self.layoutWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(1)
+ sizePolicy.setHeightForWidth(self.menuBtn.sizePolicy().hasHeightForWidth())
+ self.menuBtn.setSizePolicy(sizePolicy)
+ self.menuBtn.setObjectName("menuBtn")
+ self.gridLayout.addWidget(self.menuBtn, 1, 2, 1, 1)
+ self.roiPlot = PlotWidget(self.splitter)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.roiPlot.sizePolicy().hasHeightForWidth())
+ self.roiPlot.setSizePolicy(sizePolicy)
+ self.roiPlot.setMinimumSize(QtCore.QSize(0, 40))
+ self.roiPlot.setObjectName("roiPlot")
+ self.gridLayout_3.addWidget(self.splitter, 0, 0, 1, 1)
+ self.normGroup = QtWidgets.QGroupBox(Form)
+ self.normGroup.setObjectName("normGroup")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.normGroup)
+ self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout_2.setSpacing(0)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.normSubtractRadio = QtWidgets.QRadioButton(self.normGroup)
+ self.normSubtractRadio.setObjectName("normSubtractRadio")
+ self.gridLayout_2.addWidget(self.normSubtractRadio, 0, 2, 1, 1)
+ self.normDivideRadio = QtWidgets.QRadioButton(self.normGroup)
+ self.normDivideRadio.setChecked(False)
+ self.normDivideRadio.setObjectName("normDivideRadio")
+ self.gridLayout_2.addWidget(self.normDivideRadio, 0, 1, 1, 1)
+ self.label_5 = QtWidgets.QLabel(self.normGroup)
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.label_5.setFont(font)
+ self.label_5.setObjectName("label_5")
+ self.gridLayout_2.addWidget(self.label_5, 0, 0, 1, 1)
+ self.label_3 = QtWidgets.QLabel(self.normGroup)
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.label_3.setFont(font)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
+ self.label_4 = QtWidgets.QLabel(self.normGroup)
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.label_4.setFont(font)
+ self.label_4.setObjectName("label_4")
+ self.gridLayout_2.addWidget(self.label_4, 2, 0, 1, 1)
+ self.normROICheck = QtWidgets.QCheckBox(self.normGroup)
+ self.normROICheck.setObjectName("normROICheck")
+ self.gridLayout_2.addWidget(self.normROICheck, 1, 1, 1, 1)
+ self.normXBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
+ self.normXBlurSpin.setObjectName("normXBlurSpin")
+ self.gridLayout_2.addWidget(self.normXBlurSpin, 2, 2, 1, 1)
+ self.label_8 = QtWidgets.QLabel(self.normGroup)
+ self.label_8.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_8.setObjectName("label_8")
+ self.gridLayout_2.addWidget(self.label_8, 2, 1, 1, 1)
+ self.label_9 = QtWidgets.QLabel(self.normGroup)
+ self.label_9.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_9.setObjectName("label_9")
+ self.gridLayout_2.addWidget(self.label_9, 2, 3, 1, 1)
+ self.normYBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
+ self.normYBlurSpin.setObjectName("normYBlurSpin")
+ self.gridLayout_2.addWidget(self.normYBlurSpin, 2, 4, 1, 1)
+ self.label_10 = QtWidgets.QLabel(self.normGroup)
+ self.label_10.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_10.setObjectName("label_10")
+ self.gridLayout_2.addWidget(self.label_10, 2, 5, 1, 1)
+ self.normOffRadio = QtWidgets.QRadioButton(self.normGroup)
+ self.normOffRadio.setChecked(True)
+ self.normOffRadio.setObjectName("normOffRadio")
+ self.gridLayout_2.addWidget(self.normOffRadio, 0, 3, 1, 1)
+ self.normTimeRangeCheck = QtWidgets.QCheckBox(self.normGroup)
+ self.normTimeRangeCheck.setObjectName("normTimeRangeCheck")
+ self.gridLayout_2.addWidget(self.normTimeRangeCheck, 1, 3, 1, 1)
+ self.normFrameCheck = QtWidgets.QCheckBox(self.normGroup)
+ self.normFrameCheck.setObjectName("normFrameCheck")
+ self.gridLayout_2.addWidget(self.normFrameCheck, 1, 2, 1, 1)
+ self.normTBlurSpin = QtWidgets.QDoubleSpinBox(self.normGroup)
+ self.normTBlurSpin.setObjectName("normTBlurSpin")
+ self.gridLayout_2.addWidget(self.normTBlurSpin, 2, 6, 1, 1)
+ self.gridLayout_3.addWidget(self.normGroup, 1, 0, 1, 1)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ Form.setWindowTitle(QtWidgets.QApplication.translate("Form", "Form", None, -1))
+ self.roiBtn.setText(QtWidgets.QApplication.translate("Form", "ROI", None, -1))
+ self.menuBtn.setText(QtWidgets.QApplication.translate("Form", "Menu", None, -1))
+ self.normGroup.setTitle(QtWidgets.QApplication.translate("Form", "Normalization", None, -1))
+ self.normSubtractRadio.setText(QtWidgets.QApplication.translate("Form", "Subtract", None, -1))
+ self.normDivideRadio.setText(QtWidgets.QApplication.translate("Form", "Divide", None, -1))
+ self.label_5.setText(QtWidgets.QApplication.translate("Form", "Operation:", None, -1))
+ self.label_3.setText(QtWidgets.QApplication.translate("Form", "Mean:", None, -1))
+ self.label_4.setText(QtWidgets.QApplication.translate("Form", "Blur:", None, -1))
+ self.normROICheck.setText(QtWidgets.QApplication.translate("Form", "ROI", None, -1))
+ self.label_8.setText(QtWidgets.QApplication.translate("Form", "X", None, -1))
+ self.label_9.setText(QtWidgets.QApplication.translate("Form", "Y", None, -1))
+ self.label_10.setText(QtWidgets.QApplication.translate("Form", "T", None, -1))
+ self.normOffRadio.setText(QtWidgets.QApplication.translate("Form", "Off", None, -1))
+ self.normTimeRangeCheck.setText(QtWidgets.QApplication.translate("Form", "Time range", None, -1))
+ self.normFrameCheck.setText(QtWidgets.QApplication.translate("Form", "Frame", None, -1))
+
+from ..widgets.HistogramLUTWidget import HistogramLUTWidget
+from ..widgets.PlotWidget import PlotWidget
+from ..widgets.GraphicsView import GraphicsView
From 3664115dde20b2c875b69210e258d899b7c47a83 Mon Sep 17 00:00:00 2001
From: Max Peng
Date: Sun, 25 Sep 2016 00:32:37 +0800
Subject: [PATCH 3/3] update the messages when none of Qt backends can be
found.
---
pyqtgraph/Qt.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyqtgraph/Qt.py b/pyqtgraph/Qt.py
index 59beb67d..7e5acb10 100644
--- a/pyqtgraph/Qt.py
+++ b/pyqtgraph/Qt.py
@@ -42,7 +42,7 @@ if QT_LIB is None:
pass
if QT_LIB is None:
- raise Exception("PyQtGraph requires one of PyQt4, PyQt5 or PySide; none of these packages could be imported.")
+ raise Exception("PyQtGraph requires one of PyQt4, PyQt5, PySide or PySide2; none of these packages could be imported.")
if QT_LIB == PYSIDE or QT_LIB == PYSIDE2 :
if QT_LIB == PYSIDE: