当前位置: 首页 > news >正文

高效创建工作流,可实现类似unreal engine的蓝图效果,内部使用多线程高效执行节点函数

文章目录

    • 前言(Introduction)
    • 开发环境搭建(Development environment setup)
    • 运行(Run test)
    • 开发者(Developer)
    • 编译(Compile)
    • 报错

前言(Introduction)

GraphExecuter 是一款基于 NodeGraphQt 开发的开源软件,采用 多线程图执行 架构,用户只需编写节点逻辑并通过连线构建图,即可自动调度并运行复杂的工作流。

该系统结合了 可视化节点编辑 和 高效并行计算,适用于数据处理、自动化任务、分布式计算等场景。开发者无需关心线程管理,只需专注于节点功能的实现,即可快速搭建高性能工作流。GraphExecuter 为需要 灵活、可扩展、可视化编排 的用户提供了便捷的解决方案,适用于从实验到生产的各种需求。

GraphExecuter is an open-source software built on NodeGraphQt, designed to simplify complex workflow execution through a node-based graph system. By utilizing multi-threading, it efficiently processes connected nodes, allowing users to focus on defining individual node logic while the framework handles task scheduling and parallel execution.

With an intuitive node-based interface, users can easily design, connect, and execute workflows for tasks like data processing, automation, or distributed computing. GraphExecuter is ideal for developers and researchers who need a flexible, visual, and high-performance way to manage complex workflows without dealing with low-level concurrency control.

code: GraphExecuter

video: 高效创建工作流,可实现类似unreal engine的蓝图效果,内部使用多线程高效执行节点函数

开发环境搭建(Development environment setup)

pip install -r .\requirements.txt

## 强制重新安装模块
pip install --force-reinstall --no-cache-dir pyside6

运行(Run test)

python main.py

❇️创建节点

在这里插入图片描述

❇️连接节点

在这里插入图片描述

❇️从选中节点开始运行图

在这里插入图片描述

开发者(Developer)

❇️编写节点(Create node type)

在这里插入图片描述

❇️注册节点(Register node type)

在这里插入图片描述

编译(Compile)

./compile.bat

在这里插入图片描述

生成的可执行文件存放在dist文件夹下

报错

❌框选节点的时候报错

Error calling Python override of QGraphicsView::mouseMoveEvent(): Traceback (most recent call last):
  File "D:\ProgramData\anaconda3\envs\DataProcessUI\Lib\site-packages\NodeGraphQt\widgets\viewer.py", line 619, in mouseMoveEvent
    self.scene().setSelectionArea(
TypeError: 'PySide6.QtWidgets.QGraphicsScene.setSelectionArea' called with wrong argument types:
  PySide6.QtWidgets.QGraphicsScene.setSelectionArea(QPainterPath, ItemSelectionMode)
Supported signatures:
  PySide6.QtWidgets.QGraphicsScene.setSelectionArea(path: PySide6.QtGui.QPainterPath, /, selectionOperation: PySide6.QtCore.Qt.ItemSelectionOperation = Instance(Qt.ReplaceSelection), mode: PySide6.QtCore.Qt.ItemSelectionMode = Instance(Qt.IntersectsItemShape), deviceTransform: PySide6.QtGui.QTransform = Default(QTransform))
  PySide6.QtWidgets.QGraphicsScene.setSelectionArea(path: PySide6.QtGui.QPainterPath, deviceTransform: PySide6.QtGui.QTransform, /)

✔️Pyside6和nodegraphqt版本不适配导致,更改viewer.py以下位置即可:

# "D:\ProgramData\anaconda3\envs\XXXXXXXX\Lib\site-packages\NodeGraphQt\widgets\viewer.py"

# self.scene().setSelectionArea(
#     path, QtCore.Qt.IntersectsItemShape
# )
self.scene().setSelectionArea(
    path,
    selectionOperation=QtCore.Qt.ItemSelectionOperation.ReplaceSelection,
    mode=QtCore.Qt.ItemSelectionMode.IntersectsItemShape
)
http://www.dtcms.com/a/108684.html

相关文章:

  • Oracle触发器使用(一):DML触发器
  • 高可用的Hadoop完全分布式环境搭建
  • 10分钟私有部署QwQ-32B模型,像购买Ecs实例一样快捷
  • 机器学习-聚类分析算法
  • P10914 [蓝桥杯 2024 国 B] 跳石
  • python 爬取网站图片的小demo
  • 【AI论文】CodeARC:评估归纳程序合成中大语言模型代理的推理能力基准
  • Xilinx FPGA XCVC1902-2MSEVSVA2197 Versal AI Core系列芯片的详细介绍
  • Java中的方法重载
  • 第J3-1周:DenseNet算法 实现乳腺癌识别(含真实图片预测)
  • 牛客练习题——素数(质数)
  • 策略模式实际用处,改吧改吧直接用,两种方式
  • DataFrame行索引操作以及重置索引
  • 第二期:深入理解 Spring Web MVC [特殊字符](核心注解 + 进阶开发)
  • Golang封装Consul 服务发现库
  • Linux进程管理与进程间通信
  • 如何将本地项目上传到Gitee的指定分支
  • 【2-6】数字调制
  • 蓝桥杯2024JavaB组的一道真题的解析
  • 云计算:基础、概念与未来展望
  • vue2拖拉拽做个模拟公式工具
  • 计算机视觉算法实战——基于YOLOv8的行人流量统计系统
  • 缺页异常导致的iowait打印出相关文件的绝对路径
  • Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件
  • RAG库搭建:从零开始,开启智能问答新世界
  • OpenCV 图形API(15)计算两个矩阵(通常代表二维向量的X和Y分量)每个对应元素之间的相位角(即角度)函数phase()
  • Ubuntu换Windows磁盘格式化指南
  • 二,<FastApi>FastApi的两个核心组件
  • JavaScript基础-window.sessionStorage
  • 通信算法之255:无人机频谱探测设备技术详解