First of all handle EditRole in your setData implementation in addition to DisplayRole. Second of all I suggest you restructure your program. Make it never access any of the ROM data directly without the model. It's better to add methods to the model class that will perform operations on the data itself than to risk modifying the data outside the model. You could simply have a increaseColumn4(const QModelIndex&) method that would bump up the number in the model and emit dataChanged().