python pyqt5 TreeWidget Demo

# -*- 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_())



在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值