README.md 2.16 KB
Newer Older
zipoo256's avatar
zipoo256 committed
1
2
3
Interactive Qt graphViz display
===============================

Guilhem Saurel's avatar
Guilhem Saurel committed
4
[![Pipeline status](https://gitlab.laas.fr/gepetto/qgv/badges/master/pipeline.svg)](https://gitlab.laas.fr/gepetto/qgv/commits/master)
Guilhem Saurel's avatar
Guilhem Saurel committed
5
6
7
[![Coverage report](https://gitlab.laas.fr/gepetto/qgv/badges/master/coverage.svg?job=doc-coverage)](https://gepettoweb.laas.fr/doc/gepetto/qgv/master/coverage/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/gepetto/qgv/master.svg)](https://results.pre-commit.ci/latest/github/gepetto/qgv)
Guilhem Saurel's avatar
Guilhem Saurel committed
8

zipoo256's avatar
zipoo256 committed
9
10
11
12
13
14
15
16
17
18
19
20
Features :
----------

* Use cgraph lib (C++ API wrapper)
* Support edges : label on edge, simple arrow both direction
* Support Nodes : box or ellipse shape, image on Node
* Support subGraphs
* Interactions with node and edge (context menu and double click)
* Zoom/move on graph
* Tested only on dot engine
* Only 6 headers/sources files to add

Bergont Nicolas's avatar
Bergont Nicolas committed
21

zipoo256's avatar
zipoo256 committed
22
23
24
25
26
Screen capture :
----------------

![Screen capture](http://i39.tinypic.com/2gy1z0h.png)

Bergont Nicolas's avatar
Bergont Nicolas committed
27
* Windows binairies demo here : https://github.com/nbergont/qgv/releases
zipoo256's avatar
zipoo256 committed
28
29
30
31

Installation :
--------------

Bergont Nicolas's avatar
Bergont Nicolas committed
32
* Download qgv sources from GIT : git clone https://github.com/nbergont/qgv.git
zipoo256's avatar
zipoo256 committed
33
34
35
36
37
38
39
40
41
42
43
* Download graphViz librairie : http://www.graphviz.org/Download.php
* Configure GRAPHVIZ_PATH in QGraphViz.pro
* Open with Qt Creator & compile

TODO :
------

* Support more attributes of Graphviz
* Add more comments
* Support head/tail label on edge
* Fully support layout from dot language (may be works...)
Bergont Nicolas's avatar
Bergont Nicolas committed
44
* Dynamicaly move node and redraw layout ? (I dont know if it's possible) : not possible
zipoo256's avatar
zipoo256 committed
45
46
47
48
49
50

Good lecture on subject :
-------------------------

* Steve Dodier-Lazaro : <http://www.mupuf.org/blog/2010/07/08/how_to_use_graphviz_to_draw_graphs_in_a_qt_graphics_scene/>
* Arvin Schnell : <http://arvin.schnell-web.net/qgraph/>
Guilhem Saurel's avatar
Guilhem Saurel committed
51
*
Bergont Nicolas's avatar
Bergont Nicolas committed
52
53
54
55
56

Other similar projects (you must look before lose time with GraphViz) :
-----------------------
* Constraint-based diagram editor : https://github.com/mjwybrow/dunnart  (Probably best one ! Awesome work ...)
* OGDF - Open Graph Drawing Framework : http://www.ogdf.net/doku.php (Very good library, better than GraphViz !)