我需要从数据模型中绘制Concept网络(节点 - 边缘 - 节点可以具有文本属性)并使其布局良好(使用QT)。我已经有了graphviz的经验,但是如果它工作得很好,我愿意学到别的东西。我有什么选择?我知道我可以生成一个图像然后以某种方式通过QLabel绘制它。但是,我希望有一个很好的集成API可以简化这个?
答案 0 :(得分:4)
您可以使用QGraphicsView
实现完全互动的图表。这可能比QLabel
中的静态图像更可取。对于这个特殊情况,Qt an example。你可以建立它。 PyQt版本附带examples/graphicsview
内的安装。
尽管如此,我不知道任何与graphviz一起使用的现成小部件/ api。
答案 1 :(得分:3)
我已经创建了一个Qt扩展小部件库 - 其中一个是节点图。您可以完全定义如何为自定义外观绘制节点,或者可以通过成员方法进行一般控制。随意看看并使用。
为了感受它的外观,Orbiter应用程序使用它来构建数据库ORM图。这是目前唯一的例子 - 但我计划在接下来的几周内获得更多的文档。
您可以在此处查看Orbiter应用:
http://www.projexsoftware.com/software/orbiter/
特定的类是非特定于应用程序的,称为XNodeWidget,这是开头的文档:
http://docs.projexsoftware.com/api/projexui/widgets/xnodewidget/
有关如何获取图书馆的信息,请访问:
http://dev.projexsoftware.com/projects/projexui/
Lemme知道这是否成功!
答案 2 :(得分:0)
另一种选择可能是使用networkx。 它允许创建图形,布局图形并绘制它(使用matplotlib或graphviz)