You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
Python
71 lines
1.9 KiB
Python
import json
|
|
import sys
|
|
import os
|
|
|
|
from pyecharts import options as opts
|
|
from pyecharts.charts import Page, Tree
|
|
from pyecharts.globals import CurrentConfig
|
|
from PyQt5.QtCore import QUrl
|
|
from PyQt5.QtWidgets import QApplication,QWidget,QHBoxLayout,QFrame
|
|
from PyQt5.QtWebEngineWidgets import QWebEngineView
|
|
|
|
|
|
data = [
|
|
{
|
|
"children": [
|
|
{"name": "B"},
|
|
{
|
|
"children": [
|
|
{"children": [{"name": "I"}], "name": "E"},
|
|
{"name": "F"},
|
|
],
|
|
"name": "C",
|
|
},
|
|
{
|
|
"children": [
|
|
{"children": [{"name": "J"}, {"name": "K"}], "name": "G"},
|
|
{"name": "H"},
|
|
],
|
|
"name": "D",
|
|
},
|
|
],
|
|
"name": "A",
|
|
}
|
|
]
|
|
|
|
|
|
|
|
|
|
class LabelTree(QWidget):
|
|
def __init__(self, projectpath):
|
|
super(LabelTree, self).__init__()
|
|
self.path = os.path.join(projectpath, '.userdata', 'Tree.html').replace('\\', '/')
|
|
self.mainLayout()
|
|
|
|
def mainLayout(self):
|
|
self.mainhboxLayout = QHBoxLayout(self)
|
|
self.frame = QFrame(self)
|
|
self.mainhboxLayout.addWidget(self.frame)
|
|
self.hboxLayout = QHBoxLayout(self.frame)
|
|
self.myHtml = QWebEngineView()
|
|
self.getTree()
|
|
self.myHtml.load(QUrl("file:///" + self.path))
|
|
|
|
self.hboxLayout.addWidget(self.myHtml)
|
|
self.setLayout(self.mainhboxLayout)
|
|
|
|
def getTree(self):
|
|
tree=(
|
|
Tree().add("", data).set_global_opts(title_opts=opts.TitleOpts(title="Tree-基本示例"))
|
|
)
|
|
tree.js_host = os.path.join(os.path.abspath(''), 'static\\')
|
|
print(tree.js_host)
|
|
|
|
tree.render(self.path)
|
|
|
|
if __name__ == '__main__':
|
|
app = QApplication(sys.argv)
|
|
ex = LabelTree()
|
|
ex.show()
|
|
sys.exit(app.exec_())
|