使用可移动节点创建有向图(使用 QT / Boost)

Posted

技术标签:

【中文标题】使用可移动节点创建有向图(使用 QT / Boost)【英文标题】:Create directed Graph with movable nodes (with QT / Boost) 【发布时间】:2012-06-28 22:31:34 【问题描述】:

我正在寻找一种工具来创建有向图,例如,当我单击一个节点时,我可以在其中移动节点并扩大/缩小图。我想在 QT 界面中使用图形。我想过尝试 Boost Graph Library,但似乎我只能用它创建图形的图像文件。我对 BGL 的了解还不是很深。那么有谁知道是否可以使用 BGL 来绘制图形,然后我可以在其中移动节点?是否可以在 QT 中使用它?还是有其他工具?

【问题讨论】:

看看***.com/questions/2751826/… @KCiebiera 如果我理解 Spencenator 的问题,问题不是图形库,而是适用于 BGL 的用户界面库。 @Styne666 是的,当然。可他问了三个问题,全都是没用的回答yes。他可能应该看看现有的图书馆并重新制定问题。很难说“移动节点”或“单击时收缩”是什么意思。 @KCiebiera 同意,这个问题措辞不当。但在字里行间,我认为这是一个很好的问题:) 【参考方案1】:

请记住,节点边缘图本身没有任何图形表示。因此,为什么 Boost 图形库可能无法提供您想要的那种 GUI。

当您了解问题的那一部分时,您的问题与以下问题非常相似:

Recommendations for visualising a directed graph in a Web UI Java Directed Graph framework [closed] Open source libraries to design directed graphs Good User Interface for Directed Hierarchical Graphs

我个人还没有见过旨在成为有向图用户界面框架的 Qt 实现。然而,Qt 将非常有能力,它的 QGraphicsScene 类是您研究的一个很好的起点。

【讨论】:

【参考方案2】:

看看 Qt Visual Graph Editor 项目:

https://arsmasiuk.github.io/qvge/

具有表示图形 + 节点/边的基类以获取灵感。支持读取和导出各种常见的图形标记格式(例如 GraphViz 文件)。

【讨论】:

【参考方案3】:

我知道QuickQuanva 和NodeGraphQt 框架。然而,后者是用 Python 编写的。

【讨论】:

以上是关于使用可移动节点创建有向图(使用 QT / Boost)的主要内容,如果未能解决你的问题,请参考以下文章

Qt 技巧:去除对话框边框 + 设置窗口可移动和透明

魔兽世界团队本右边那个boos血条怎么移动位置

D3 具有非树数据的可折叠力有向图 - 链接对齐

QT QGraphicsProxyWidget对象可选择或移动的一些tricks

强连通分量

强连通分量