我想要像 QString QSqlTableModel::getColumnName(int col) 这样的东西。
问问题
7321 次
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 回答