Тут кое-что получилось. Если кому интересно.
От идеи с UNION в запросе отказался- логику запроса портит, не понравилось. Пришлось создавать производній класс. Оказывается, новая строка появляется при простом переопределении метода rowCount:
int FileDepositesModel::rowCount (const QModelIndex & parent) const
{
if (parent.isValid()) return 0;
return QSqlQueryModel::rowCount(parent) + 1;
}
После этого в таблице автоматом появляется пустая строка. Дальше, как уже укзывали раньше, в методе data форматируем последнюю строчку. Типа
QVariant FileDepositesModel::data(const QModelIndex &index, int role) const
{
QVariant value = QSqlQueryModel::data(index, role);
switch (role)
{
case Qt::DisplayRole:
if (index.row() == this->rowCount()-1)
{
if (index.column() == fldTotal) return tr_::total; else
if (index.column() == fldSumm)
{
QString s;
s.setNum(summ, 'f', 2);
return s;
}
}
break;
case Qt::BackgroundColorRole:
{
if (index.row() == rowCount() - 1) return qVariantFromValue(QColor(224, 255, 193));
else return value;
}
case Qt::FontRole:
if (index.row() == rowCount() - 1)
{
QFont fnt = QFont(qvariant_cast<QFont>(value));
fnt.setBold(true);
return qVariantFromValue(fnt);
}
else return value;
break;
}
return value;
}
Общий вид такого TableView'а на рисунке:
Только еще вопрос появился: как убрать номер строки (в заголовке) для этой последней итоговой строки? На рисунке этот номер выделен красным кругом.
Буду рад за замечания. (И спасибо всем за советы

)