'The keyword arguments \'useOpenGL\' and \'backgound\', if specified, are passed to the remote
GraphicsView.__init__(). All other keyword arguments are passed to multiprocess.QtProcess.__init__().'

def __init__(self, parent=None, *args, **kwds):

    self._img = None
    self._imgReq = None
    self._sizeHint = (640, 480)
    QtGui.QWidget.__init__(self)
    remoteKwds = {}
    for kwd in ['useOpenGL', 'background']:
        if (kwd in kwds):
            remoteKwds[kwd] = kwds.pop(kwd)
    self._proc = mp.QtProcess(**kwds)
    self.pg = self._proc._import('pyqtgraph')
    self.pg.setConfigOptions(**CONFIG_OPTIONS)
    rpgRemote = self._proc._import('pyqtgraph.widgets.RemoteGraphicsView')
    self._view = rpgRemote.Renderer(*args, **remoteKwds)
    self._view._setProxyOptions(deferGetattr=True)
    self.setFocusPolicy(QtCore.Qt.StrongFocus)
    self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
    self.setMouseTracking(True)
    self.shm = None
    shmFileName = self._view.shmFileName()
    if sys.platform.startswith('win'):
        self.shmtag = shmFileName
    else:
        self.shmFile = open(shmFileName, 'r')
    self._view.sceneRendered.connect(mp.proxy(self.remoteSceneChanged))
    for method in ['scene', 'setCentralItem']:
        setattr(self, method, getattr(self._view, method))
