¿Cómo puedo eliminar un QListWidgetItem de un QListWidget y refrescar la pantalla?
Pregunta
Estoy utilizando un QListWidget para mostrar una lista de QListWidgetItem
Esta lista se lee de un archivo. Al cerrar el archivo, quiero vaciar la lista.
Lo hice en mi método:
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
Las obras de método loadQuiz, el método flush imprimir el texto de cada elemento, pero ni el método ni removeItemWidget del elemento funciona para vaciar la lista.
¿Cómo puedo hacer eso?
Gracias
Solución
¿Por qué planteo usar método claro en QListWidget?
Otros consejos
Sé que esto es ya ha respondido , pero me encontré con esta pregunta para encontrar una manera de eliminar la seleccionado artículo (s).
Esto se puede hacer de esta manera:
def removeSelected(self):
for item in self.selectedItems():
self.takeItem(self.row(item))
Espero que esto ayude a alguien por allí!
En realidad, no lo hace removeItemWidget trabajo para este fin.
Aquí está mi solución
def flush(self):
while self.count() > 0:
self.takeItem(0)
El método takeItem (0) funciona como un pop () en un (count () - 1) Pila y takeItem. Como un pop () en una cola