如何从元组填充 QTreeWidget?
How to populate QTreeWidget from tuple?
我是 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-loop 有效,headers 列在根元素下,但后两个 for-loop 根本不起作用。我究竟做错了什么?我筛选了文档,一切都表明我应该使用 addChild() 但 PyCharm 说:
'QTreeWidget' object has no attribute 'addChild'
我正在使用 Python 3.6 和 PyQt5。谢谢!
一个 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_())
输出:
我是 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-loop 有效,headers 列在根元素下,但后两个 for-loop 根本不起作用。我究竟做错了什么?我筛选了文档,一切都表明我应该使用 addChild() 但 PyCharm 说:
'QTreeWidget' object has no attribute 'addChild'
我正在使用 Python 3.6 和 PyQt5。谢谢!
一个 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_())
输出: