docs: def add_tab(self, tab, title='', icon=None):
          """
          Adds a tab to main tab widget.
  
          :param tab: Widget to add as a new tab of the main tab widget.
          :param title: Tab title
          :param icon: Tab icon
          """
          if icon:
              tab._icon = icon
          if not hasattr(tab, 'clones'):
              tab.clones = []
          if not hasattr(tab, 'original'):
              tab.original = None
          if icon:
              self.main_tab_widget.addTab(tab, icon, title)
          else:
              self.main_tab_widget.addTab(tab, title)
          self.main_tab_widget.setCurrentIndex(
              self.main_tab_widget.indexOf(tab))
          self.main_tab_widget.show()
          tab._uuid = self._uuid
          try:
              scroll_bar = tab.horizontalScrollBar()
          except AttributeError:
              # not a QPlainTextEdit class
              pass
          else:
              scroll_bar.setValue(0)
          tab.setFocus()
          tab._original_tab_widget = self
          self._tabs.append(tab)
          self._on_focus_changed(None, tab)