如何获取QSqlTableModel的列名?

tom*_*tom 4 c++ sql qt qabstractitemmodel

我想有类似QString QSqlTableModel :: getColumnName(int col)的东西.

AJG*_*G85 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"));
Run Code Online (Sandbox Code Playgroud)

同样,您可以从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();
Run Code Online (Sandbox Code Playgroud)

默认情况下,如果未设置别名,则列名称将等于初始化模型时从表元数据中读取的值.确保您的节索引是有效的列索引.请务必为列指定"水平方向",为行指定"垂直".

希望这可以帮助.