我在一个QTreeWidget里有两列,第一列代表了url列表,第二列代表了结果。我已经将url列表加载到第一列中,现在我想要遍历这个列表,在遍历的过程中改变第二列的文本。如何实现?
我在一个QTreeWidget里有两列,第一列代表了url列表,第二列代表了结果。我已经将url列表加载到第一列中,现在我想要遍历这个列表,在遍历的过程中改变第二列的文本。如何实现?
您可以调用QTreeWidget.invisibleRootItem()来获取根项目,然后使用QTreeWidgetItem API迭代遍历项目。
示例:
root = self.treeWidget.invisibleRootItem()
child_count = root.childCount()
for i in range(child_count):
item = root.child(i)
url = item.text(0) # text at first (0) column
item.setText(1, 'result from %s' % url) # update result column (1)
我假设self.treeWidget
是由以下内容填充的:
self.treeWidget.setColumnCount(2) # two columns, url result
for i in range(10):
self.treeWidget.insertTopLevelItem(i, QTreeWidgetItem(QStringList('url %s' % i)))
QTreeWidgetItemIterator
帮助类 - 不幸的是,它没有提供仅迭代顶级树形项目的方法,因此在这种常见用例中不适用。我们能否共同承认,Qt API 足够晦涩难懂,如果没有 StackOverflow 的话就毫无用处?(是的。是的,我们可以。) - Cecil Curry
QTableWidget
替换QTreeWidget
。 - reclosedev