QTableView + QSqlTableModel - как прочитать идентификатор выбранной строки - PullRequest
7 голосов
/ 24 апреля 2011

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

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

Ответы [ 2 ]

6 голосов
/ 24 апреля 2011

Также вы можете получить идентификатор напрямую из 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();
5 голосов
/ 24 апреля 2011

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

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

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

void QAbstractItemView::activated ( const QModelIndex & index )

Сигнал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...