class_docstr: QtProcess is essentially the same as Process, with two major differences:
  
    - The remote process starts by running startQtEventLoop() which creates a
      QApplication in the remote process and uses a QTimer to trigger
      remote event processing. This allows the remote process to have its own
      GUI.
    - A QTimer is also started on the parent process which polls for requests
      from the child process. This allows Qt signals emitted within the child
      process to invoke slots on the parent process and vice-versa. This can
      be disabled using processRequests=False in the constructor.
    
  Example::
  
      proc = QtProcess()            
      rQtGui = proc._import('PyQt4.QtGui')
      btn = rQtWidgets.QPushButton('button on child process')
      btn.show()
      
      def slot():
          print('slot invoked on parent process')
      btn.clicked.connect(proxy(slot))   # be sure to send a proxy of the slot
code: def startEventTimer(self):
      from ..Qt import (
          QtCore,
      )  # # avoid module-level import to keep bootstrap snappy.
  
      self.timer = QtCore.QTimer()
      if self._processRequests:
          self.startRequestProcessing()
  
imports: import atexit
  import inspect
  import multiprocessing.connection
  import os
  import signal
  import subprocess
  import sys
  import time
  import pickle
  from ..Qt import QT_LIB, mkQApp
  from ..util import cprint
  from .remoteproxy import ClosedError, LocalObjectProxy, NoResultError, ObjectProxy, RemoteEventHandler
  import threading
label_desc: Use image node_id 2 for calling the QtProcess obj's underlying member method code with example usage: obj.startEventTimer() without return types