2012-08-24 102 views
2

我需要從數據模型中繪製概念網絡(節點 - 邊 - 節點可以具有文本屬性),並將它鋪設得很好(使用QT)。我已經有了graphviz的經驗,但是如果它可以工作,我願意學習其他東西。我有什麼選擇?我知道我可以生成一個圖像,然後通過QLabel以某種方式繪製。但是,我希望有一個很好的集成API可以簡化這個過程?繪製圖形通過PyQt4在QT中繪製ALA Graphviz

回答

4

您可以使用QGraphicsView實現完全交互式圖形。這可能比QLabel中的靜態圖片更可取。對於這種特殊情況,Qt有an example。你可以建立它。 PyQt版本在examples/graphicsview內安裝。

雖然,我不知道任何現成的widgets/api與graphviz一起工作。

+0

聽起來像我可能要找的+1 –

2

我製作了一個Qt擴展小部件庫 - 其中一個是節點圖。您可以完全定義如何繪製自定義外觀的節點,或者可以通過成員方法進行統一控制。隨意看看和使用。

爲了體會它的外觀,Orbiter應用程序使用它來構建數據庫ORM圖。這是目前唯一的例子 - 但我打算在接下來的幾周內獲得更多的文檔。

你可以看到軌道器應用在這裏:

http://www.projexsoftware.com/software/orbiter/

的具體類是不特定應用,被稱爲XNodeWidget,這裏的開始文檔:

http://docs.projexsoftware.com/api/projexui/widgets/xnodewidget/

和訊關於如何獲得圖書館可以在這裏找到:

http://dev.projexsoftware.com/projects/projexui/

讓我知道是否可行!

+0

看起來很有前途。我一定會瀏覽API。 –

0

另一種選擇可能是使用networkx。 它允許創建您的圖形,佈局並繪製它(使用matplotlib或graphviz)