У меня есть QTableView, который вытягивает список местоположений и координаты широты/долготы из базы данных SQLite. Я хочу извлечь широту и долготу из строки, которую пользователь выбрал в таблице, и использую следующий код, но он выглядит довольно запутанным. Возможно, я просто не понимаю, как полностью использовать модель/систему просмотра Qt. Могу ли я написать этот код более четким, более компактным способом?Qt: Доступ к ячейкам в QTableView
QModelIndexList list1 = this->ui->tableView->selectionModel()->selectedRows(1);
QModelIndexList list2 = this->ui->tableView->selectionModel()->selectedRows(2);
if (list1.count() != 1 || (list1.count() != list2.count()))
{
return;
}
double latitude = list1.at(0).data().toDouble();
double longitude = list2.at(0).data().toDouble();
Что такое «модель»? Нет метода index() для QItemSelectionModel ... –
Модель является источником ваших данных. Вы сказали, что вы кормите свой QTableView из базы данных SQLite, возможно, это экземпляр [QSqlTableModel] (http://doc.trolltech.com/latest/qsqltablemodel.html) или [QSqlRelationalTableModel] (http: //doc.trolltech. ком/последний/qsqlrelationaltablemodel.html). В основном это то, что вы передаете 'ui-> tableView-> setModel()' как единственный параметр. –
Ах, конечно! «QSqlTableModel», да. Спасибо за вашу помощь и извините за задержку в принятии. Теперь мой код выглядит намного чище. –