例如,如果标题以英文显示“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);
但是这似乎没有触发视图进行更新。所有其他的小部件都以新语言显示。
在派生的模型类中,我还覆盖了QAbstractTableModel headerData()函数:
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();
}
model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
- undefinedheaderData()
并在那里提供你的表头... - undefined