通过PyQt4在QT中绘制图形ALA Graphviz

时间:2012-08-24 01:40:25

标签: python pyqt4 data-visualization graphviz

我需要从数据模型中绘制Concept网络(节点 - 边缘 - 节点可以具有文本属性)并使其布局良好(使用QT)。我已经有了graphviz的经验,但是如果它工作得很好,我愿意学到别的东西。我有什么选择?我知道我可以生成一个图像然后以某种方式通过QLabel绘制它。但是,我希望有一个很好的集成API可以简化这个?

3 个答案:

答案 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)