¿Cómo puedo eliminar un QListWidgetItem de un QListWidget y refrescar la pantalla?

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

  •  25-09-2019
  •  | 
  •  

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

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top