Python 在一个周期内从QListWidget中删除所有项目
我有以下代码,应该从QListWidget中删除所有项, 但它一次单击仅删除一项(不是全部)。为什么?这是怎么回事? 我不想使用Python 在一个周期内从QListWidget中删除所有项目,python,python-3.x,pyqt,pyqt5,qlistwidget,Python,Python 3.x,Pyqt,Pyqt5,Qlistwidget,我有以下代码,应该从QListWidget中删除所有项, 但它一次单击仅删除一项(不是全部)。为什么?这是怎么回事? 我不想使用clear()方法。我想逐渐把它们去掉 def onRemoveItems(self): # button click event for i in range(self.myListWidget2.count()): itemI = self.myListWidget2.item(i) self.myListWidget2.takeI
clear()
方法。我想逐渐把它们去掉
def onRemoveItems(self): # button click event
for i in range(self.myListWidget2.count()):
itemI = self.myListWidget2.item(i)
self.myListWidget2.takeItem(self.myListWidget2.row(itemI))
其概念与从列表中删除项相同:如果使用递增索引并同时删除项,则只会删除一半的项 如果从0开始并删除行0,则第二项将成为第一项。因为在下一个循环中,您将尝试删除第1行,结果是您将删除之前的第三行 因此,您可以始终删除第0行的项目:
def onRemoveItems(self):
for i in range(self.myListWidget2.count()):
itemI = self.myListWidget2.item(0)
self.myListWidget2.takeItem(self.myListWidget2.row(itemI))
def onremovietems(self):
对于范围内的i(self.myListWidget2.count()):
itemI=self.myListWidget2.item(0)
self.myListWidget2.takeItem(self.myListWidget2.row(itemI))
或者使用倒车档:
def onRemoveItems(self): # button click event
for i in range(self.myListWidget2.count() - 1, -1, -1):
itemI = self.myListWidget2.item(i)
self.myListWidget2.takeItem(self.myListWidget2.row(itemI))
def onremovitems(self):#按钮单击事件
对于范围内的i(self.myListWidget2.count()-1,-1,-1):
itemI=self.myListWidget2.item(i)
self.myListWidget2.takeItem(self.myListWidget2.row(itemI))
您确定它只删除一项吗?它不可能每两个删除一个项目吗?@musicamante它会删除一半的项目。