code: def add_button(self, name, checkable=False, checked=False):
          
  
          # first clean up the name
          name = self._clean_up_name(name)
  
          # split into (presumably existing) branches and parameter
          s = name.split('/')
  
          # make sure it doesn't already exist
          if not self._find_parameter(s, quiet=True) == None:
              self.print_message("Error: '"+name+"' already exists.")
              return None
  
          # get the leaf name off the list.
          p = s.pop(-1)
  
          # create / get the branch on which to add the leaf
          b = self._find_parameter(s, create_missing=True)
  
          # quit out if it pooped
          if b == None: return None
  
          # create the leaf object
          ap = _g.parametertree.Parameter.create(name=p, type='action')
  
          # add it to the tree (different methods for root)
          if b == self._widget: b.addParameters(ap)
          else:                 b.addChild(ap)
  
          # modify the existing class to fit our conventions
          ap.signal_clicked = ap.sigActivated
  
          # Now set the default value if any
          if name in self._lazy_load:
              v = self._lazy_load.pop(name)
              self._set_value_safe(name, v, True, True)
          
          # Connect it to autosave (will only create unique connections)
          self.connect_any_signal_changed(self.autosave)
          
          return Button(name, checkable, checked, list(ap.items.keys())[0].button)
docs: Adds (and returns) a button at the specified location.