2

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

4

3 回答 3

4

您可以使用QGraphicsView. 这可能比QLabel. Qt 有一个针对这种特殊情况的示例。您可以在此基础上进行构建。PyQt 版本自带安装里面examples/graphicsview

不过,我不知道任何可与 graphviz 一起使用的现成小部件/api。

于 2012-08-24T02:06:47.200 回答
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/

让我知道这是否可行!

于 2012-08-24T04:37:01.833 回答
0

另一种选择可能是使用networkx。它允许创建您的图形,对其进行布局和绘制(使用 matplotlib 或 graphviz)

于 2017-05-08T16:39:30.627 回答