5

我想要像 QString QSqlTableModel::getColumnName(int col) 这样的东西。

4

2 回答 2

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();

默认情况下,如果您未设置别名,则列名将与初始化模型时从表元数据中读取的相同。确保您的部分索引是有效的列索引。确保为列指定水平方向,为行指定垂直方向。

希望这可以帮助。

于 2011-01-04T18:00:57.877 回答
2

调用setTable()后,可以调用record()方法获取字段信息。

QString getColumnName(int col) {
   return sqlTableModel.record().fieldName(col);
}
于 2018-05-21T14:24:10.237 回答