class_docstr: Replacement for GraphicsView that does all scene management and rendering on a remote process,
  while displaying on the local widget.
  
  GraphicsItems must be created by proxy to the remote process.
docstr: 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__().
docstr_tok: ["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__","(",")","."]
code: def __init__(self, parent=None, *args, **kwds):
      """
      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__().
      """
      self._img = None
      self._imgReq = None
      self._sizeHint = (
          640,
          480,
      )  ## no clue why this is needed, but it seems to be the default sizeHint for GraphicsView.
      ## without it, the widget will not compete for space against another GraphicsView.
      QtWidgets.QWidget.__init__(self)
  
      # separate local keyword arguments from remote.
      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.FocusPolicy.StrongFocus)
      self.setSizePolicy(
          QtWidgets.QSizePolicy.Policy.Expanding,
          QtWidgets.QSizePolicy.Policy.Expanding,
      )
      self.setMouseTracking(True)
      self.shm = None
      shmFileName = self._view.shmFileName()
      if sys.platform == "win32":
          opener = lambda path, flags: os.open(
              path, flags | os.O_TEMPORARY
          )
      else:
          opener = None
      self.shmFile = open(shmFileName, "rb", opener=opener)
  
      self._view.sceneRendered.connect(
          mp.proxy(self.remoteSceneChanged)
      )  # , callSync='off'))
      ## Note: we need synchronous signals
      ## even though there is no return value--
      ## this informs the renderer that it is
      ## safe to begin rendering again.
  
      for method in ["scene", "setCentralItem"]:
          setattr(self, method, getattr(self._view, method))
  
imports: from ..Qt import QT_LIB, QtCore, QtGui, QtWidgets
  import atexit
  import enum
  import mmap
  import os
  import sys
  import tempfile
  from ..None import Qt
  from ..None import CONFIG_OPTIONS
  from ..None import multiprocess
  from .GraphicsView import GraphicsView
label_desc: Use image node_id 1 to create a new RemoteGraphicsView object from inherited base classes: QtWidgets with example: obj = RemoteGraphicsView(parent)