Come posso rimuovere un QListWidgetItem da un QListWidget e aggiornare il display?
Domanda
Sto usando un QListWidget per visualizzare un elenco di QListWidgetItem
Questa lista viene letto da un file. Quando chiudo il file, voglio svuotare la lista.
Ho fatto questo metodo su mia:
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
I lavori metodo loadQuiz, il metodo flush stampare il testo di ogni elemento, ma né il metodo né removeItemWidget del prodotto lavora per svuotare la lista.
Come posso fare questo?
Grazie
Soluzione
Perché wont utilizzare il metodo chiaro su QListWidget?
Altri suggerimenti
So che questo è già risposto , ma mi sono imbattuto in questa domanda di trovare un modo per eliminare il selezionato item (s).
Questo può essere fatto in questo modo:
def removeSelected(self):
for item in self.selectedItems():
self.takeItem(self.row(item))
Spero che questo aiuta qualcuno là fuori!
In realtà, removeItemWidget non funziona per questo scopo.
Questa è la mia soluzione
def flush(self):
while self.count() > 0:
self.takeItem(0)
Il metodo takeItem (0) funziona come un pop () in un (count () - 1) Pila e takeItem. Come una pop () in una coda