Python 如何从元组填充QTreeWidget?

Python 如何从元组填充QTreeWidget?,python,python-3.x,pyqt5,qtreewidget,qtreewidgetitem,Python,Python 3.x,Pyqt5,Qtreewidget,Qtreewidgetitem,我对Python很陌生,所以请容忍我。我试图从一个元组填充一个QTreeWidget,但我似乎无法让它正常工作 TreeList = ({ 'Header1': (( 'Item1', 'Item2', )), 'Header2': (( 'Item1', 'Item2' )) }) 我想创建一个QTreeWidget,它看起来像: ROOT | |-- Header1 | |

我对Python很陌生,所以请容忍我。我试图从一个元组填充一个QTreeWidget,但我似乎无法让它正常工作

TreeList = ({

    'Header1': ((
        'Item1',
        'Item2',
    )),

    'Header2': ((
        'Item1',
        'Item2'
    ))
})
我想创建一个QTreeWidget,它看起来像:

ROOT
  |
  |-- Header1
  |    |-- Item1
  |    |-- Item2
  |
  |-- Header2
       |-- Item1
       |-- Item2
我一直在网上寻找解决方案,但我尝试的方法似乎都不管用,最好的方法是什么

widget = QTreeWidget()

for i in TreeList:
    val = QTreeWidgetItem([i])
    widget.addTopLevelItem(val)

for i in TreeList['Header1']
    val = QTreeWidgetItem([i])
    widget.Header1.addChild(val)  # DONT THINK THIS IS RIGHT

for i in TreeList['Header2']
    val = QTreeWidgetItem([i])
    widget.Header2.addChild(val)  # DONT THINK THIS IS RIGHT
第一个for循环可以工作,头列在根元素下,但第二个for循环根本不工作。我做错了什么?我已经仔细阅读了文档,所有内容都表明我应该使用addChild(),但PyCharm说:

“QTreeWidget”对象没有属性“addChild”


我将Python3.6与PyQt5一起使用。谢谢

A
QTreeWidgetItem
可以直接传递给父级,但它需要一个项目列表或元组,如下所示:

import sys

from PyQt5.QtWidgets import *

TreeList = ({

    'Header1': ((
        'Item11',
        'Item12',
    )),

    'Header2': ((
        'Item21',
        'Item22'
    ))
})

app = QApplication(sys.argv)

tree = QTreeWidget()

for key, value in TreeList.items():
    root = QTreeWidgetItem(tree, [key])
    for val in value:
        item = QTreeWidgetItem([val])
        root.addChild(item)
        # Or
        # QTreeWidgetItem(root, [val])

tree.expandAll()
tree.show()
sys.exit(app.exec_())
输出:


这样做非常有效,而且似乎是最优化的方法。非常感谢。您还可以执行
root.addChild(QTreeWidgetItem([val])
似乎工作正常。