Source code for layer_viewer.layer_view_widget
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
_nameToPattern = {
'SolidPattern': QtCore.Qt.SolidPattern,
'LinearGradientPattern': QtCore.Qt.LinearGradientPattern,
'Dense1Pattern': QtCore.Qt.Dense1Pattern,
'Dense2Pattern': QtCore.Qt.Dense2Pattern,
'Dense3Pattern': QtCore.Qt.Dense3Pattern,
'Dense4Pattern': QtCore.Qt.Dense4Pattern,
'Dense5Pattern': QtCore.Qt.Dense5Pattern,
'Dense6Pattern': QtCore.Qt.Dense6Pattern,
'Dense7Pattern': QtCore.Qt.Dense7Pattern,
'NoBrush': QtCore.Qt.NoBrush,
'HorPattern': QtCore.Qt.HorPattern,
'VerPattern': QtCore.Qt.VerPattern,
'CrossPattern': QtCore.Qt.CrossPattern,
'BDiagPattern': QtCore.Qt.BDiagPattern,
'FDiagPattern': QtCore.Qt.FDiagPattern,
'DiagCrossPattern': QtCore.Qt.DiagCrossPattern
}
#ev.ignore()
[docs]class LayerViewWidget(QtGui.QWidget):
def __init__(self,settings_widget, parent=None):
QtGui.QWidget.__init__(self, parent)
self.graphView = pg.GraphicsView()
self.graphViewLayout = QtGui.QGraphicsGridLayout()
self.graphView.centralWidget.setLayout(self.graphViewLayout)
#self.setPolicy(self.graphView,QtGui.QSizePolicy.Expanding)
# view box
self.view_box = MyViewBox()#parent=self)
self.view_box.setAspectLocked(True)
# add view box to graph view layout
self.graphViewLayout.addItem(self.view_box,0,0)
self.hbox = QtGui.QHBoxLayout()
self.setLayout(self.hbox)
self.hbox.addWidget(self.graphView)
# flip the view box
self.view_box.invertY(True)
self.settings_widget = settings_widget
def bg_change(*args,**kwargs):
#print("waerawe")
self.setBackground()
bg_params = settings_widget.p.param('ViewBox Options','ViewBox Background')
# Too lazy for recursion:
for child in bg_params.children():
child.sigValueChanged.connect(bg_change)
for ch2 in child.children():
ch2.sigValueChanged.connect(bg_change)
self.setBackground()
s = self.view_box.menu.addAction('Settings')
s.triggered.connect(self.showSettings)
[docs] def setBackground(self):
self.bgType = self.settings_widget.p[('ViewBox Options','ViewBox Background','bg-type')]
self.bgColor1 = self.settings_widget.p[('ViewBox Options','ViewBox Background','bg-color 1')]
self.bgColor2 = self.settings_widget.p[('ViewBox Options','ViewBox Background','bg-color 2')]
bg = self.view_box.background
self.view_box.background.show()
bg.setVisible(True)
if self.bgType == 'LinearGradientPattern':
g = QtGui.QLinearGradient(
QtCore.QRectF(self.rect()).topLeft(),
QtCore.QRectF(self.rect()).bottomLeft()
)
g.setColorAt(0, self.bgColor1);
g.setColorAt(1, self.bgColor2);
brush = QtGui.QBrush(g)
else:
brush = QtGui.QBrush()
brush.setStyle(getQtPattern(self.bgType))
brush.setColor(self.bgColor1)
bg.setBrush(brush)