Python QTreeWidget的迭代

Python QTreeWidget的迭代,python,qt,pyqt,qtreewidget,qtreewidgetitem,Python,Qt,Pyqt,Qtreewidget,Qtreewidgetitem,我有一个QTreeWidget,用来表示数据的分解结构。基本上,我计划使用我的QTreeWidget来跟踪城市中某些人口统计数据的人口。例如: Males 9,000 - New York 5,000 - D.C. 4,000 Females

我有一个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)],
}

关于如何遍历每个元素(以及每个元素的每个列)并将其与存储的字典值进行比较,有什么想法吗

您可以使用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

您可以使用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

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