如何从 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方法有效,flush方法打印每个项目的文本,但removeItemWidget方法和del项目都不能清空列表。
我怎样才能做到这一点?
谢谢
I am using a QListWidget to display a list of QListWidgetItem
This list is read from a file. When I close the file, I want to empty the list.
I did this method on my :
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
The loadQuiz method works, the flush method print the text of each item but nor removeItemWidget method nor del item works to empty the list.
How can I do that ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我知道这是已经回答了,但我遇到这个问题是为了找到一种删除所选内容的方法强> 项目。
可以这样做:
希望这对那里的人有帮助!
I know this is already answered, but I came across this question to find a way to delete the selected item(s).
This can be done like so:
Hope this helps someone out there!
为什么不在 QListWidget 上使用clear方法?
Why wont use clear method on QListWidget ?
实际上,removeItemWidget 不能用于此目的。
这是我的解决
方案 takeItem(0) 方法的工作方式类似于堆栈中的 pop() ,而 takeItem(count()-1) 则类似于队列中的 pop() 。
Actually, removeItemWidget doesn't work for this purpose.
Here is my solution
The method takeItem(0) works like a pop() in a Stack and takeItem(count()-1) like a pop() in a queue.