code: def __init__(self, canvas_wrapper: CanvasWrapper, *args, **kwargs):
      super().__init__(*args, **kwargs)
  
      central_widget = QtWidgets.QWidget()
      main_layout = QtWidgets.QHBoxLayout()
  
      self._controls = Controls()
      main_layout.addWidget(self._controls)
      self._canvas_wrapper = canvas_wrapper
      main_layout.addWidget(self._canvas_wrapper.canvas.native)
  
      central_widget.setLayout(main_layout)
      self.setCentralWidget(central_widget)
  
      self._connect_controls()
  
imports: import time
  from math import sin, pi
  import numpy
  from PyQt5 import QtWidgets, QtCore
  from vispy.scene import SceneCanvas, visuals
  from vispy.app import use_app
label_desc: Use image node_id 1 to create a new MyMainWindow object from inherited base classes: QtWidgets with example: obj = MyMainWindow(canvas_wrapper)