我正在使用一个QListWidget显示QListWidgetItem的列表

这个列表被从文件中读取。当我关闭该文件,我想清空列表。

我没有这个方法在我的:

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

在loadQuiz方法作品,冲洗方法打印每个项的文本,但也不removeItemWidget方法也不删除项目的工作空的列表中。

我怎么能这样做?

由于

有帮助吗?

解决方案

为什么不会上QListWidget使用明确的方法?

其他提示

我知道这是已经回答,但我遇到了这个问题找到一个方法来删除的选择项目(S)。

此可以像这样进行:

def removeSelected(self):
    for item in self.selectedItems():
        self.takeItem(self.row(item))

希望这有助于有人出来!

实际上,removeItemWidget不起作用用于此目的。

下面是我的溶液

def flush(self):
    while self.count() > 0:
        self.takeItem(0)

的方法takeItem(0)的工作原理是一个弹出()是一个堆栈和takeItem(计数() - 1)。像弹出()在队列中

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top