There is a flags() function in your model. Reimplement that to turn off Qt::ItemIsEditable for those cells you don't want edited. I suppose that function could check if all previous cells have been validated or not.