QTreeWidget的迭代

sud*_*ang 1 python qt pyqt qtreewidget qtreewidgetitem

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

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

 Females                                    10,000
     - Nashville                            3,000
     - San Diego                            7,000
Run Code Online (Sandbox Code Playgroud)

显然,这些数据仅是示例。我在执行此操作时遇到一些问题。我不知道如何遍历树。这样我就可以经常检查数据是否已更改。如果它已更改,那么我想用存储在我的python词典中的数据更新它,如下所示:

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

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

koj*_*jak 5

您可以使用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
Run Code Online (Sandbox Code Playgroud)