PyQt4 - Supprimer l'Élément Widget de QListWidget
J'ai un QListWidget et j'ai besoin de supprimer certains éléments.
De ce que j'ai fait des recherches, c'est généralement désagréable chose à faire.
J'ai lu une tonne de solutions, mais aucune n'est applicable à mon scénario.
Pour le moment, je n'ai que de l'Élément réel de Widgets à traiter; pas de leurs valeurs ou de l'index.
C'est parce que je obtenir les points nécessaires pour être retiré) via .selectedItems()
.
Voici le code:
ItemSelect = list(self.ListDialog.ContentList.selectedItems())
for x in range (0, len(ItemSelect)):
print self.ListDialog.ContentList.removeItemWidget(ItemSelect[x])
Ce n'est rien du tout, cependant.
Il ne génère pas d'erreur, mais les éléments sélectionnés ne sont pas supprimés.
Les méthodes que j'ai vu pour la suppression d'éléments nécessitent soit l'index ou le nom de l'élément, ni de qui que j'ai. Je n'ai que le réel widgets.
Comment puis-je les supprimer?
Suis-je raté quelque chose?
Je suis en utilisant:
Python 2.7.1
PyQt4
INACTIF 1.8
Windows 7
Vous devez vous connecter pour publier un commentaire.
takeItem() devrait fonctionner:
Supprimer un Élément de ListWidget:
currentRow()
fonctionne uniquement pour les listes de sélection. Sinon, il faut utiliser leselectedItems()
et l'itération.C'est bizarre il n'y a pas un moyen direct pour supprimer des éléments de QListWidget ...
Essayez ceci:
takeItem
(voir les autres réponses). Cela dit, il est en effet bizarre qu'il n'est pas appeléremoveItem
.item = listWidget.takeItem(row)
vous donnera l'objet de la QListWidgetItem, qui peut ensuite être transmis à un autre widget ou quoi que ce soit.