Например, если заголовок отображал «ColumnName» на английском языке, я попытался изменить его на новый язык, обработав событие изменения языка:
QApplication::instance()->installTranslator( translator );
ui->retranslateUi(this);
ui->tableView->retranslate();
, а затем позвонив
model->setHeaderData(0, Qt::Horizontal, tr("ColumnName"), Qt::DisplayRole);
model->headerDataChanged(Qt::Horizontal, 0, 1);
Но, похоже, это не запускает обновление представления. Все остальные виджеты отображаются на новом языке.
В классе производной модели я также переопределил функцию headerData () QAbstractTableModel:
QVariant MyTableModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if (role == Qt::DisplayRole)
{
if (orientation == Qt::Horizontal) {
switch (section)
{
case Priority:
return tr("ColumnName");
case FileName:
return tr("Filename");
default:
return QString("");
}
}
}
return QVariant();
}