我正在使用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方法有效,flush方法打印每个项目的文本但是removeItemWidget方法也没有删除del项目来清空列表。
我该怎么做?
由于
答案 0 :(得分:4)
我知道这是already answered,但我遇到了这个问题,想方设法删除所选的项目。
这可以这样做:
def removeSelected(self):
for item in self.selectedItems():
self.takeItem(self.row(item))
希望这有助于那里的人!
答案 1 :(得分:2)
为什么不在QListWidget上使用clear方法?
答案 2 :(得分:0)
实际上,removeItemWidget不能用于此目的。
这是我的解决方案
def flush(self):
while self.count() > 0:
self.takeItem(0)
方法takeItem(0)的工作方式类似于Stack中的pop()和takeItem(count() - 1),就像队列中的pop()一样。