如何从模型中获取行? 是否真的有必要经历这一行并逐步获取每个项目?
我正在使用这个功能,它正在工作,但我对此并不满意。 有更好的方法吗?
def row(self, r):
row = []
for c in range(self.columnCount()):
index = self.index(r, c)
value = self.data(index).toString()
row.append(value)
return row
答案 0 :(得分:2)
将所有内容放入列表理解中:
row = [self.data(self.index(r,c))
for c in xrange(self.columnCount())]
可能更快,但当然读起来并不是很好。
如果你想使用Qt提供的模型 - 那么是的,这是访问基础数据的唯一方法。
你可以使用QStandardItemModel
,这将允许你做
row = [self.item(r,c) for c in xrange(self.columnCount())]
只能避免创建索引的需要。
根据您的使用情况,您当然可以实现基于Python列表或dicts的通用Qt模型,这些模型允许以Qt方式和python方式访问项目。