code: def createEditor(self, parent, option, index):
          
          logger.debug("ConfigItemDelegate.createEditor, parent: {!r}".format(parent.objectName()))
          assert index.isValid(), "sanity check failed: invalid index"
  
          cti = index.model().getItem(index)
          editor = cti.createEditor(self, parent, option)
          return editor
docs: Returns the widget used to change data from the model and can be reimplemented to
              customize editing behavior.
  
              Reimplemented from QStyledItemDelegate.