0

我非常努力做这里被问到的事情:

http://www.qtcentre.org/threads/45028-Designing-a-Node-Editor-(Hint-Blender-Node-Editor)

这基本上是一个使用 Qt 的搅拌器样式节点编辑器。用可以拖放的圆圈创建矩形很容易弄清楚(见下图)。

我遇到的问题是连接节点之间的圆圈的算法将如何工作。另外我不知道如何使用 QGraphicsItem API 有效地绘制它?我见过 QPainter::cubicTo() 看起来可能是要走的路?

我认为它以某种方式设法找到了一条不重叠的路径?但它还必须处理必须重叠的情况?

如果算法做得不好,用户是否能够移动这些线呢?我认为使用 QPainter::cubicTo() 实现这并不简单,因为您只能移动曲线控制点?

在此处输入图像描述

4

2 回答 2

3

我认为您不会让任何人在这里发布代码来完成所有工作。

好吧,我自愿——以防有人仍然需要这样的图书馆。

它是在 QGraphicsView 之上实现的基于 Qt 的节点编辑器。库使用者定义数据模型,其余由节点编辑器完成。一些特点:

  • 模型视图方法。
  • 模型描述了数据类型、输入和输出的数量以及可选的嵌入式 QWidget。
  • 场景可以保存到文件中。

其余类似项目要么未完成,要么不再受支持,要么缺少某些功能。

https://github.com/paceholder/nodeeditor 在此处输入图像描述

于 2016-09-27T10:13:13.307 回答
1

我建议您在不考虑重叠的情况下实施它,但有可能覆盖连接线的绘制方式。

看起来Qt论坛上有一些很好的回复。我认为您不会让任何人在这里发布代码来完成所有工作。

也许看看 Qt demos Graphics View/Elastic Nodes - 有可以用作起点的演示代码,但是从那里到像 Blender 节点编辑器这样的东西需要做很多工作。

另一个要查看的节点编辑器是 SynthEdit 或 Synth Maker(有一个不错的)。

于 2012-12-13T12:52:36.443 回答