【问题标题】:Iteration of a QTreeWidgetQTreeWidget 的迭代
【发布时间】:2015-10-04 17:58:25
【问题描述】:

我有一个 QTreeWidget,我用它来表示数据的分解结构。基本上我计划使用我的 QTreeWidget 来跟踪城市中某些人口统计的人口。例如:

 Males                                      9,000
     - New York                             5,000
     - D.C.                                 4,000

 Females                                    10,000
     - Nashville                            3,000
     - San Diego                            7,000

显然,这些数据只是举例。我在实现这一点时遇到了一些问题。我不知道如何遍历树。这样我就可以经常检查数据是否发生了变化。如果它已经改变,那么我想用我存储在我的 python 字典中的数据来更新它,看起来像:

{'Males': [MyCustomClass('New York', 5000), MyCustomClass('D.C.', 4000)], 
 'Females': [MyCustomClass('Nashville', 3000), MyCustomClass('San Diego', 7000)],
}

关于如何遍历每个元素(以及每个元素的每一列)并将其与其存储的字典值进行比较的任何想法?

【问题讨论】:

  • 听起来您应该将QTreeView 与自定义模型一起使用,而不是尝试将树与数据同步。
  • 将 QTreeWidget 转换为您建议的内容有多难?
  • 不是很难。如果您在网络上搜索pyqt qtreeview custom model,您应该会找到大量示例/教程。

标签: python qt pyqt qtreewidget qtreewidgetitem


【解决方案1】:

你可以使用 QTreeWidgetItemIterator

因为我找不到它的官方 pyqt 文档,所以应该可以这样:

iterator = QTreeWidgetItemIterator(self.treeWidget)

while iterator.value():
    item = iterator.value()
    if item.text() == "someText" #check value here
        item.setText(column, "text") #set text here
    iterator+=1

【讨论】:

    猜你喜欢
    • 2012-02-16
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2016-02-17
    • 1970-01-01
    • 2022-01-21
    • 2015-08-25
    相关资源
    最近更新 更多