J'ai un modèle de type QStandardItemModel qui ressemble à ceci:Trier QStandardItemModel en C++ Qt
QHash<int, QByteArray> roleNames;
roleNames[Car2goVehicle::NameRole] = "plate_number";
roleNames[Car2goVehicle::DescriptionRole] = "address";
roleNames[Car2goVehicle::FuelRole] = "fuel";
roleNames[Car2goVehicle::InteriorRole] = "interior";
roleNames[Car2goVehicle::ExteriorRole] = "exterior";
roleNames[Car2goVehicle::VinRole] = "vin";
roleNames[Car2goVehicle::LatRole] = "lat";
roleNames[Car2goVehicle::LonRole] = "lon";
roleNames[Car2goVehicle::DistanceRole] = "distance";
d->m_vehiclesmodel = new RoleItemModel(roleNames);
et maintenant je veux trier selon la distance comme celui-ci
d->m_vehiclesmodel->setSortRole(Qt::UserRole);
d->m_vehiclesmodel->sort(Car2goVehicle::DistanceRole, Qt::AscendingOrder);
Mais le résultat est faux . Quelqu'un peut-il me dire comment trier?
Merci.
Vous pouvez même dire, indépendamment de la façon dont vous triez votre modèle, la vue peut choisir de l'afficher d'une autre manière. C'est pourquoi vous devez utiliser 'QSortFilterProxyModel'. – RedX
J'ai aussi utilisé QSortFilterProxyModel mais mon modèle est trié selon Car2goVehicle :: NameRole et non Car2goVehicle :: DistanceRole – Temirlan
Termirlan: Vous confondez des colonnes avec des rôles? J'ai ajouté un paragraphe sur votre extrait de code ci-dessus. –