我怎样才能从QListWidget删除QListWidgetItem并刷新显示?
题
我正在使用一个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)。像弹出()在队列中
不隶属于 StackOverflow