【问题标题】:PyQT QTreeWidget iteratingPyQT QTreeWidget 迭代
【发布时间】:2012-02-16 04:49:58
【问题描述】:

我在 QTreeWidget 中有两列,一列代表 url 列表,第二列代表 结果。我已经在第一列中加载了 url 列表,现在我想迭代这个列表,并在迭代期间更改第二列中的文本。如何做到这一点?

【问题讨论】:

  • 你能给我们看看代码吗?
  • 如果只有两列,QTreeWidget 可以替换为QTableWidget

标签: python pyqt qtreewidget


【解决方案1】:

您可以调用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 helper class——遗憾的是,它没有提供迭代only顶级树项的方法,因此不适用于这个常见的用例。我们能否共同承认 Qt API 足够晦涩以至于没有 StackOverflow 就毫无用处? (是的。是的,我们可以。
猜你喜欢
  • 2015-10-04
  • 2016-06-24
  • 2012-02-08
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 2014-03-06
  • 2021-12-20
相关资源
最近更新 更多