gpt4 book ai didi

python - 在一个循环中从 QListWidget 中删除所有项目

转载 作者:行者123 更新时间:2023-12-04 10:27:31 24 4
gpt4 key购买 nike

我有以下代码,它应该从 QListWidget 中删除所有项目,
但它只需单击即可删除一项(不是全部)。为什么?怎么是对的?
我不想用 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 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))

关于python - 在一个循环中从 QListWidget 中删除所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60567277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com