QTableView + QSqlTableModel - как прочитать идентификатор выбранной строки

Я использую QTableView с QSqlTableModel. На мой взгляд, я не отображаю столбец, содержащий идентификатор записи. Как я могу получить идентификатор выбранной строки, если она не отображается ни в одном столбце?

Спасибо за помощь:)

2 ответа

Решение

Также вы можете получить идентификатор напрямую из QSqlQueryModel, но я не уверен, что он более удобен, чем предложенный soulSurfer.

С помощью QModelIndex для желаемого ряда:

QSqlQueryModel *model = tableView->model();
QSqlRecord record= model->record(desiredIndex->row());
QSqlField field = record.field(id_column_index);
int id = field.value().toInt();

Хм... один из способов - получить идентификатор модели и скрыть его в виде

void QTableView::setColumnHidden (int column, bool hide)

тогда вы в основном получаете это, но скрываете его, и отсюда вы можете легко получить его непосредственно из модели, используя индекс, генерируемый из

void QAbstractItemView::activated ( const QModelIndex & index )

Сигнал.

Другие вопросы по тегам