Python 如何从元组填充QTreeWidget?
我对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 | |
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])
似乎工作正常。