使用PyQt5写python代码读取字典中的key以及key里面嵌套的key,将其设置为子节点和下一子节点(value不包括在子节点里),子节点和下一子节点都形成单个复选框可以自由选择并生成图形化界面
时间: 2024-05-15 20:18:03 浏览: 180
为Python程序添加图形化界面的教程
您可以使用PyQt5中的QTreeView和QStandardItemModel来实现这个功能。下面是示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QTreeView, QStandardItemModel
def create_items(item, data):
# 递归函数,根据嵌套字典创建子节点
for key, value in data.items():
child = QStandardItem(key)
item.appendRow(child)
if isinstance(value, dict):
create_items(child, value)
else:
child.setCheckable(True)
app = QApplication(sys.argv)
# 设置字典数据
data = {
'key1': {
'subkey1': {},
'subkey2': {}
},
'key2': {
'subkey3': {},
'subkey4': {
'subsubkey1': {},
'subsubkey2': {}
}
}
}
# 创建根节点,并递归创建所有子节点
model = QStandardItemModel()
root = model.invisibleRootItem()
create_items(root, data)
# 创建树形视图并将数据模型设置到视图上
tree_view = QTreeView()
tree_view.setModel(model)
tree_view.show()
sys.exit(app.exec_())
```
上述代码可以根据给定的字典数据创建一个树形结构,其中父节点是字典的key,子节点是字典中的嵌套key,并且可以选择每个子节点。您可以根据需求进一步修改代码,例如为每个节点设置相应的value,或者在选择某些子节点后生成图形化界面。
阅读全文