PyQT QTreeWidget 迭代

7 投票
1 回答
23674 浏览
提问于 2025-04-17 10:50

我有一个QTreeWidget,里面有两列。第一列是一个网址列表,第二列是结果。我已经把网址列表加载到第一列,现在我想遍历这个列表,并在遍历的过程中修改第二列的文本。请问我该怎么做呢?

1 个回答

16

你可以调用 QTreeWidget.invisibleRootItem() 来获取树的根节点,然后使用 QTreeWidgetItem 的相关功能来遍历里面的项目。

举个例子:

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)))

撰写回答