Да не, вроде, не упустил.
По сути разницы нету... Кусок кода для одной модели, заменить EditRole на USerRole - вроде не сложно
void TSpecialityModel::setHeaderNames()
{
setHeaderData(fieldIndex("id"),Qt::Horizontal,tr("ID"),Qt::DisplayRole);
setHeaderData(fieldIndex("code"),Qt::Horizontal,tr("Code"),Qt::DisplayRole);
setHeaderData(fieldIndex("speciality"),Qt::Horizontal,tr("Speciality"),Qt::DisplayRole);
setHeaderData(fieldIndex("qualification_id"),Qt::Horizontal,tr("Qualification ID"),Qt::DisplayRole);
setHeaderData(fieldIndex("qualification"),Qt::Horizontal,tr("Qualification"),Qt::DisplayRole);
for (int i=0;i<record().count();i++)
setHeaderData(i,Qt::Horizontal,record().fieldName(i),Qt::EditRole); <----------------------- тута
return;
}
Кстати, стоит наверное описать в хелпе, ситуация непрозрачная.