我想要像QString QSqlTableModel :: getColumnName(int col)这样的东西。
答案 0 :(得分:5)
您可以在QSqlTableModel中设置列名别名,如下所示:
model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("First name"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Last name"));
同样,您可以从QSqlTableModel中检索列名称别名:
QString columnName1 = model->headerData(0, Qt::Horizontal, Qt::DisplayRole).toString();
QString columnName2 = model->headerData(1, Qt::Horizontal, Qt::DisplayRole).toString();
QString columnName3 = model->headerData(2, Qt::Horizontal, Qt::DisplayRole).toString();
默认情况下,如果未设置别名,则列名称将等于初始化模型时从表元数据中读取的值。确保您的节索引是有效的列索引。请务必为列指定水平方向,为行指定垂直方向。
希望这有帮助。
答案 1 :(得分:0)
调用setTable()后,可以获取调用record()方法的字段信息。
QString getColumnName(int col) {
return sqlTableModel.record().fieldName(col);
}