code: def setData(self, index, value, role=QtCore.Qt.EditRole):
          
          if index.isValid():
              if role == QtCore.Qt.EditRole:
                  if index.column() == 1:
                      p = index.internalPointer()
                      k = self.get_key(p, index.row())
                      # we could just set the value
                      # BUT for listvalues etc it will not work
                      strval = self._val_to_str(value)
                      # _handle_value will parse it correctly
                      # comments gets lost
                      (parsedval, comment) = self._conf._handle_value(strval)
                      p[k] = parsedval
                      self.dataChanged.emit(index, index)
                      return True
          return False
docs: Reimplemented from QtCore.QAbstractItemModel
  
          You can only set the value.
  
          :param index: the index to edit, column should be 1.
          :type index: :class:`PySide.QtCore.QModelIndex`
          :param value: the new value for the configobj
          :type value: object
          :param role: Optional - the ItemDataRole. Default is QtCore.Qt.EditRole
          :type role: QtCore.Qt.ItemDataRole
          :returns: True if index was edited, False if index could not be edited.
          :rtype: bool
          :raises: None