code: def add_view(self,
                   view,
                   name=None,
                   position=None,
                   closable=False,
                   floatable=True,
                   floating=None):
          
  
          # Set the name in the view.
          view.view_index = self._get_view_index(view)
          # The view name is `<class_name><view_index>`, e.g. `MyView0`.
          view.name = name or view.__class__.__name__ + str(view.view_index)
  
          # Get the Qt canvas for VisPy and matplotlib views.
          widget = _try_get_vispy_canvas(view)
          widget = _try_get_matplotlib_canvas(widget)
  
          dock_widget = _create_dock_widget(widget, view.name,
                                            closable=closable,
                                            floatable=floatable,
                                            )
          self.addDockWidget(_get_dock_position(position), dock_widget)
          if floating is not None:
              dock_widget.setFloating(floating)
          dock_widget.view = view
  
          # Emit the close_view event when the dock widget is closed.
          @dock_widget.connect_
          def on_close_widget():
              self.emit('close_view', view)
  
          dock_widget.show()
          self.emit('add_view', view)
          logger.log(5, "Add %s to GUI.", view.name)
          return dock_widget
docs: Add a widget to the main window.