code: def initUI(self):
      vbox = QtWidgets.QVBoxLayout()
      self.setLayout(vbox)
  
      hbox = QtWidgets.QHBoxLayout()
      self.btnOpen = QtWidgets.QPushButton("OpenDocument", self)
      self.btnOpen.clicked.connect(self.openDoc)
      hbox.addWidget(self.btnOpen)
  
      self.btnPlay = QtWidgets.QPushButton("PlayDocument", self)
      self.btnPlay.clicked.connect(self.playDoc)
      hbox.addWidget(self.btnPlay)
  
      self.btnStop = QtWidgets.QPushButton("Stop", self)
      self.btnStop.clicked.connect(self.stopPlay)
      hbox.addWidget(self.btnStop)
  
      self.label = QtWidgets.QLabel("0/0", self)
      self.label.setFont(QtGui.QFont("Verdana", 20))
      hbox.addWidget(self.label)
  
      vbox.addLayout(hbox)
  
      self.labelImg = QtWidgets.QLabel("Document", self)
      sizePolicy = QtWidgets.QSizePolicy(
          QtWidgets.QSizePolicy.Policy.Preferred,
          QtWidgets.QSizePolicy.Policy.Expanding,
      )
      self.labelImg.setSizePolicy(sizePolicy)
      vbox.addWidget(self.labelImg)
  
      self.setGeometry(100, 100, 400, 600)
      self.setWindowTitle("PyMuPDF Document Player")
      self.show()
  
file_path: pymudf/docs/samples/multiprocess-gui.py
imports: import os
  import sys
  import time
  import multiprocessing
  import queue
  import fitz
  from pkgutil import iter_modules
label_desc: Use image node_id 2 for calling the DocForm obj's underlying member method code with example usage: obj.initUI() without return types