Wie kann ich eine QListWidgetItem von einem QListWidget entfernen und die Anzeige aktualisieren?

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

  •  25-09-2019
  •  | 
  •  

Frage

Ich bin ein QListWidget mit einer Liste von QListWidgetItem anzuzeigen

Diese Liste wird aus einer Datei lesen. Wenn ich die Datei zu schließen, möchte ich die Liste leeren.

habe ich diese Methode auf meinem:

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

Die loadQuiz Methode funktioniert, die Flush-Methode den Text der einzelnen Elemente drucken, aber noch removeItemWidget Methode noch del Artikel arbeitet die Liste zu leeren.

Wie kann ich das tun?

Danke

War es hilfreich?

Lösung

Warum werde nicht klar Methode auf QListWidget verwenden?

Andere Tipps

Ich weiß, das bereits beantwortet ist , aber ich kam in dieser Frage einen Weg zu finden, löschen die ausgewählt Position (en).

Das kann etwa so erfolgen:

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

Hope dies hilft jemand da draußen!

Eigentlich removeItemWidget funktioniert nicht für diesen Zweck.

Hier ist meine Lösung

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

Das Verfahren takeItem (0) funktioniert wie ein pop () in einem Stapel und takeItem (count () - 1). Wie ein pop () in einer Warteschlange

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top