попробовал, после clear() остаются ячейки, удаляются только данные, не то...
а модель обычная QSqlTableModel
а если так:
bool QSqlQueryModel::removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() ) [virtual]
Removes count columns from the model starting from position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.
Removing columns effectively hides them. It does not affect the underlying QSqlQuery.
Returns true if the columns were removed; otherwise returns false.