遍历List Widget

最直接的方法如下:

items = []
for index in xrange(self.listWidget.count()):
     items.append(self.listWidget.item(index))

但是这样很不pythonic,基于一般越短的代码就是越正确的代码的原理,可以像下面这样:

all_items = self.listWidgetA.findItems(QString('*'), Qt.MatchWrap | Qt.MatchWildcard)

但是这相当于把所有的items全部存到一个list里面了,会费资源,还是不好。

可以考虑如下方式,在listWidget的subclass里定义一个iterAllItems method,其实他是一个generator。

def iterAllItems(self):
    for i in range(self.count()):
        yield self.item(i)

results matching ""

    No results matching ""