Bonsoir
J'ai un petit soucis Qt avec un QListWidget et ses QListWidgetItem.
J'ai pour des raisons perso besoin, selon certains évènements extérieurs, de réordonner les QWidgetItem qui sont dans mon QListWidget.
J'ai donc créé un tableau qui contient tous mes QListWidgetItem. Au départ je crée le QListWidget puis j'y mets tous les item du tableau.
Puis quand l'évènement arrive, je réordonne le tableau par un sort() associé à une fonction de comparaison dédiée qui me permet de réordonner mes items selon mes caractéristiques. Et je veux les remettre ensuite dans le QListWidget dans le bon ordre et là, impossible.
J'ai essayé de faire removeItemWidget en boucle sur tous mes item puis les remettre dans l'ordre du tableau => ils se remettent toujours dans l'ordre qui était le leur la première fois qu'ils ont été positionnés. J'ai tenté un addItem, un insertItem(i) avec i l'indice de l'item dans le tableau => rien à faire.
Pourtant le tableau est bien dans le bon ordre. J'ai même placé un QMessageBox dans la boucle => je vois bien les items arriver dans le bon ordre MAIS ensuite je les vois se positionner dans le QListWidgetItem comme ils étaient à l'origine.
J'ai aussi examiné chaque méthode de la QListWidget. J'ai eu un petit espoir en voyant qu'elle possédait elle aussi un sort mais c'est un simple sort selon le texte de l'item et non selon un choix personnel.
Bref est-ce que ce que je veux faire est possible ? Est-ce que je m'y prends mal ?
Pour l'instant j'ai trouvé une solution palliative qui me satisfait moyennement. Quand le tableau est trié, je fais un clear() sur le QListWidget puis je recrée les item dans le bon ordre. Mais je trouve pas ça super tiptop...
Merci à tous
Partager