J'ai un QTableView qui extrait une liste d'emplacements et de coordonnées de latitude/longitude à partir d'une base de données SQLite. Je veux extraire la latitude et la longitude de la ligne que l'utilisateur a sélectionnée dans la table, et j'utilise le code suivant, mais il semble assez compliqué. Peut-être que je ne comprends pas comment utiliser pleinement le système modèle/vue de Qt. Puis-je écrire ce code de manière plus claire et plus compacte?Qt: Accès aux cellules d'un 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();
Qu'est ce que le 'modèle'? Il n'y a pas de méthode index() sur un QItemSelectionModel ... –
Le modèle est la source de vos données. Vous avez dit que vous alimentez votre QTableView à partir de la base de données SQLite, donc probablement une instance de [QSqlTableModel] (http://doc.trolltech.com/latest/qsqltablemodel.html) ou [QSqlRelationalTableModel] (http: //doc.trolltech. com/latest/qsqlrelationaltablemodel.html). Fondamentalement, c'est ce que vous passez à 'ui-> tableView-> setModel()' comme seul paramètre. –
Ah, bien sûr! Un 'QSqlTableModel', oui. Merci pour votre aide et désolé pour le retard dans l'acceptation. Mon code a l'air beaucoup plus propre maintenant. –