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 )
Сигнал.