Comment puis-je supprimer un QListWidgetItem d'un QListWidget et rafraîchir l'affichage?

StackOverflow https://stackoverflow.com/questions/4203312

  •  25-09-2019
  •  | 
  •  

Question

J'utilise un QListWidget pour afficher une liste des QListWidgetItem

Cette liste est lu à partir d'un fichier. Quand je ferme le fichier, je veux vider la liste.

Je l'ai fait cette méthode sur mon:

class QuestionsList(QtGui.QListWidget):
    def __init__(self, parent):
        super(QuestionsList, self).__init__(parent)
        self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
        self.setProperty("showDropIndicator", False)
        self.setAlternatingRowColors(True)

        self.quiz = None

    def loadQuiz(self, quiz):
        self.quiz = quiz

        self.flush()

        if quiz is not None:

            i = 1
            for question in quiz.questions_list:
                self.addItem(QuestionItem(i, question, self))
                i += 1


    def flush(self):
        for item in [self.item(i) for i in xrange(self.count())]:
            print unicode(item.text())
            self.removeItemWidget(item)
            del item

La méthode loadQuiz fonctionne, la méthode flush imprimer le texte de chaque élément, mais ni méthode, ni removeItemWidget del point fonctionne à vider la liste.

Comment puis-je faire?

Merci

Était-ce utile?

La solution

Pourquoi utiliser wont méthode claire sur QListWidget?

Autres conseils

Je sais que c'est déjà répondu, mais je suis tombé sur cette question pour trouver un moyen de supprimer sélectionné item (s).

Cela peut se faire comme ceci:

def removeSelected(self):
    for item in self.selectedItems():
        self.takeItem(self.row(item))

Espérons que cela aide quelqu'un là-bas!

En fait, removeItemWidget ne fonctionne pas à cet effet.

Voici ma solution

def flush(self):
    while self.count() > 0:
        self.takeItem(0)

La méthode takeItem (0) fonctionne comme un pop () dans une pile et takeItem. (Count () - 1) comme un pop () dans une file d'attente

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top