# -*- encoding: utf-8 -*-
'''
@File : tree.py
@Contact :
@Modify Time @Author @Version @Desciption
------------ ----------- -------- -----------
2022/5/6 13:43 GongCanYang 1.0 None
'''
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon, QBrush, QColor
from PyQt5.QtCore import Qt
import cantools # 手动修改了
from prodemo import *
from dbc_tree import *
from PyQt5.QtWidgets import QMainWindow, QOpenGLWidget, QApplication, QFileDialog, QMessageBox, QDialog, QWidget, \
QPushButton, QHBoxLayout
RadarVehicleCan = cantools.database.load_file("dbc/私can.dbc")
# print(RadarVehicleCan.messages[0].signal_tree)
dbc_dict ={}
for i in range(len(RadarVehicleCan.messages)):
messageid = hex(RadarVehicleCan.messages[i].frame_id)
dbc_dict[messageid] = RadarVehicleCan.messages[i].signal_tree
# for singal in RadarVehicleCan.messages[i].signal_tree:
# print(singal)
dbc_id_list = list(dbc_dict.keys())
print(list(dbc_dict.keys()))
class TreeWidgetDemo(QMainWindow):
def __init__(self, parent=None):
super(TreeWidgetDemo, self).__init__(parent)
self.setWindowTitle('TreeWidget 例子')
self.tree = QTreeWidget()
# 设置列数
self.tree.setColumnCount(2)
# 设置头的标题
self.tree.setHeaderLabels(['Key', 'Value'])
# 设置根节点
# 设置列宽
self.tree.setColumnWidth(0, 150)
### 设置节点的背景颜色
# brush_red = QBrush(Qt.red)
# root.setBackground(0, brush_red)
# brush_green = QBrush(Qt.green)
# root.setBackground(1, brush_green)
rootLst = []
for key in dbc_dict.keys():
root = QTreeWidgetItem(self.tree)
root.setText(0, 'MSG_ID')
root.setText(1,key)
rootLst.append(root)
for index in range(len(dbc_dict[key])):
child = QTreeWidgetItem()
child.setText(0,"SignalName")
child.setText(1,dbc_dict[key][index])
root.addChild(child)
rootLst.append(child)
# 为tree增加顶级项目
self.tree.addTopLevelItem(root)
# 结点全部展开
self.tree.expandAll()
self.setCentralWidget(self.tree)
if __name__ == '__main__':
app = QApplication(sys.argv)
tree = TreeWidgetDemo()
tree.show()
sys.exit(app.exec_())