Тогда вместо QSqlQueryModel надо использовать другой класс, например, потомок от QStandardItemModel:
class SqlSelectModel : public QStandardItemModel
{
public:
SqlSelectModel(QObject* parent = 0) : QStandardItemModel(parent) {};
SqlSelectModel(const QString& query, const QSqlDatabase& db = QSqlDatabase());
void setQuery(const QString& query, const QSqlDatabase& db = QSqlDatabase());
Qt::ItemFlags flags(const QModelIndex& index) const;
};
SqlSelectModel::SqlSelectModel(const QString& query, const QSqlDatabase& db /* = QSqlDatabase */) :
QStandardItemModel(0, 0)
{
setQuery(query, db);
}
void SqlSelectModel::setQuery(const QString &query, const QSqlDatabase &db)
{
clear();
QSqlQuery sql_query(query, db);
QSqlRecord rec = sql_query.record();
insertColumns(0, rec.count());
for (int i = 0; i < rec.count(); i++)
setHeaderData(i, Qt::Horizontal, rec.fieldName(i), Qt::DisplayRole);
int row = 0;
while (sql_query.next())
{
insertRow(row);
for (int i = 0; i < rec.count(); i++)
{
setData(index(row, i), sql_query.value(i), Qt::DisplayRole);
row++;
}
}
Qt::ItemFlags SqlSelectModel::flags(const QModelIndex& index) const
{
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}