Dibujar gráficos ALA Graphviz en QT a través de PyQt4 [cerrado]

I need to draw Concept networks(nodes - edges - nodes can have text properties) from a data model and have it layed out nicely (using QT). I already have experience with graphviz, but i'm willing to learn something else if it works outa-da-box. What are my options ? I know I could generate a image and then draw that via a QLabel somehow. However, I am hoping there is a nice integrated API available that simplifies this ?

preguntado el 24 de agosto de 12 a las 02:08

3 Respuestas

You can implement a fully interactive graph with QGraphicsView. That will probably be preferable than a static image in a QLabel. Qt has un ejemplo for this particular case. You can build on it. PyQt version comes with installation inside examples/graphicsview.

Though, I don't know any ready-made widgets/api that works with graphviz.

Respondido 24 ago 12, 03:08

Sounds like what I might be looking for +1 - hassan syed

I have made a library of Qt extension widgets - one of which is a node graph. You are able to fully define how to draw your nodes for custom looks, or can control generically via member methods. Feel free to have a look and use.

To get a feel for its look, the Orbiter application uses it to build database ORM graphs. Thats the only example at the moment - but I am planning to get more docs up in the next couple of weeks.

You can see the Orbiter app here:

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

The specific class is non-application specific and is called XNodeWidget, here's the beginning docs:

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

And information on how to get the library can be found here:

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

Lemme know if that works out!

Respondido 24 ago 12, 05:08

That looks promising. I will surely look through the API. - hassan syed

Otra opción podría ser utilizar networkx. It allows to create your graph, layout it and draw it (either using matplotlib or graphviz)

contestado el 08 de mayo de 17 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.