pyqt5读取json文件,并将文件名和内容显示在界面上
时间: 2024-03-17 11:41:18 浏览: 254
好的,可以使用PyQt5中的QTreeView和QStandardItemModel来实现。以下是一个简单的例子:
```python
import sys
from PyQt5.QtWidgets import QApplication, QTreeView, QFileSystemModel, QVBoxLayout, QWidget, QStandardItemModel, QStandardItem
import json
class JsonTreeView(QWidget):
def __init__(self, json_file):
super().__init__()
self.json_file = json_file
self.initUI()
def initUI(self):
# 创建布局
layout = QVBoxLayout(self)
# 创建QStandardItemModel
model = QStandardItemModel(self)
model.setHorizontalHeaderLabels(['Name', 'Content'])
# 读取json文件
with open(self.json_file, 'r') as f:
data = json.load(f)
# 遍历json文件并添加到model中
for name, content in data.items():
item_name = QStandardItem(name)
item_content = QStandardItem(content)
model.appendRow([item_name, item_content])
# 创建QTreeView并设置model
tree = QTreeView(self)
tree.setModel(model)
# 将QTreeView添加到布局中
layout.addWidget(tree)
# 设置窗口大小
self.setGeometry(300, 300, 800, 600)
self.setWindowTitle('JSON Tree View')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
json_file = 'example.json'
ex = JsonTreeView(json_file)
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个JsonTreeView类,它继承自QWidget,并在initUI()方法中创建了一个QStandardItemModel并读取了json文件。然后,我们遍历json文件并将其添加到模型中。最后,我们创建了一个QTreeView并将模型设置为其数据源,最终将QTreeView添加到布局中。
你只需要将json_file变量设置为你想要读取的json文件的路径即可。
阅读全文