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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top