QT 实现组织树状图

ops/2024/11/28 7:55:03/

1.实现效果

在Qt中使用QGraphicsItem和QGraphicsScene实现树状图,你需要创建自定义的QGraphicsItem类来表示树的节点,并管理它们的位置和连接,以下是实现效果图。
在这里插入图片描述

2.实现思路

可以看见,上图所示,我们需要自定义连线类和节点类。
每个节点类Node,需要绘制矩形框体文字和颜色;每个连线类需要绘制直线,绘制两个Node类之间的连线。
首先我们自定义结构体如下:以下是demo演示,可以根据实际情况自定义数据结构。

struct Person
{int id;             //id

http://www.ppmy.cn/ops/137299.html

相关文章

HDMI转VGA方案 LT8612UX(HDMI2.0) LT8612SX LT8511EX LT8522EX LT8612EX_e(HDMI1.4)

一、产品概述 LT8612UX是一款高性能的HDMI至HDMI&VGA转换器,由龙迅半导体公司推出。它能够将HDMI2.0数据流转换为HDMI2.0信号和模拟RGB信号,同时输出8通道I2S和SPDIF信号,实现高质量的7.1声道音频。该转换器采用最新的ClearEdge技术&…

基于.NET调用WebService服务

基于.NET调用WebService服务 上一篇文章用java的Spring Boot框架搭建了一个WebService服务端,这篇文章通过.NET进行调用,下文基于Visual Studio 2022 引入WebService服务 项目右键 -> 添加 -> 服务引用 选择WCF Web Service,点击下一…

第三章:基本语法 1.注释 --Go 语言轻松入门

在Go语言中,注释是用来帮助开发者理解代码的重要工具。Go支持两种类型的注释:单行注释和多行注释(也称为块注释)。 1.单行注释: 单行注释以//开始,直到该行的末尾。这是最常用的注释形式,用于…

设计模式学习之——责任链模式

责任链模式的基本概念 定义:责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象按照一定顺序处理请求,并且每个对象可以选择自己是否处理该请求或者将其传递给下一个对象处理。 核心思…

Jupyter Notebook的安装和配置提示功能

Python开发环境搭建conda管理环境-CSDN博客 安装anaconda和对接到编译器的教程可以看上面这一篇 Jupyter Notebook是一种交互式计算环境,它允许用户在单个文档中编写和执行代码、方程、可视化和文本。与其他编译器相比,Jupyter Notebook的突出点在于其交…

自动化运维(k8s)之微服务信息自动抓取:namespaceName、deploymentName等全解析

前言:公司云原生k8s二开工程师发了一串通用性命令用来查询以下数值,我想着能不能将这命令写成一个自动化脚本。 起初设计的 版本一:开头加一条环境变量,执行脚本后,提示输入:需要查询的命名空间&#xff0c…

react中的useCallback 有什么作用?

在 React 中,useCallback 是一个优化性能的 Hook,主要用于 记忆化(memoization)函数,从而防止在每次渲染时创建新的函数实例。具体来说,useCallback 可以帮助你确保某个函数只会在依赖项发生变化时才会重新…

SPI SRAM串行静态随机存储器

SPI SRAM串行外设接口静态随机存储器,是一种在嵌入式系统中广泛使用的存储解决方案。它以其高速的数据传输速率、低功耗特性以及紧凑的封装形式,成为众多工程师在设计电子设备时的首选。SPI SRAM存储器通过四线制的SPI接口与主控制器连接,包括…