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

115
16

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


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

спросил(а) 2021-01-19T17:32:22+03:00 2 месяца, 3 недели назад
1
Решение
106

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

ответил(а) 2021-01-19T17:32:22+03:00 2 месяца, 3 недели назад
97

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


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

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

void QAbstractItemView::activated ( const QModelIndex & index )

Сигнал.

ответил(а) 2021-01-19T17:32:22+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема