gpt4 book ai didi

python - 如何从元组填充 QTreeWidget?

转载 作者:行者123 更新时间:2023-12-02 07:45:09 27 4
gpt4 key购买 nike

我对 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 循环有效,并且 header 列在根元素下,但后两个 for 循环根本不起作用。我究竟做错了什么?我已经仔细阅读了文档,一切都表明我应该使用 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_())

输出:

enter image description here

关于python - 如何从元组填充 QTreeWidget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47481370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com