Wie kann ich eine QListWidgetItem von einem QListWidget entfernen und die Anzeige aktualisieren?
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
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