Overview | Dependencies | Building | Roadmap | License
(Linux/g++6/Qt5.10 - OSX/Clang/Qt5.9)
(Windows/MSVC 2015 x64/Qt5.10/qmake)
There is quite a lot of traffic and clones actually: Please remember to star the project and reports bugs....
- CHANGELOG 20180602: Major documentation update (see Custom Groups and Graph View and Using from C++.
- CHANGELOG 20180527: Fix major issues with grouping, see CHANGELOG.
QuickQanava
is a C++14 library designed to display graphs and relational content in a Qt application. QuickQanava provide QML components and C++ classes to visualize medium-sized directed graphs in a C++/QML application. QuickQanava focus on displaying relational content into a dynamic user interface with DnD support, resizable content and visual creation of topology. More advanced layouts algorithms might be integrated in future versions.
QuickQanava main repository is hosted on GitHub: http://cneben.github.io/QuickQanava/index.html
QuickQanava is primarily developed with Qt 5.10 with MSVC2015U3 and g++5.4 (minimal required Qt version is Qt 5.10)
-
Project homepage: http://cneben.github.io/QuickQanava/topology/index.html
For any questions, please contact: benoit@destrat.io
QuickQanava focus on writing content delegates in QML (even if they could be 100% defined in C++, a QML engine is still necessary in the background), if you are looking for a pure C++/QGraphicsView solution, have a look to: NodeEditor
Edges |
---|
Nodes |
---|
- User Doc: QuickStart - Custom Nodes
Visual Connector |
---|
- User Doc: QuickStart - Visual Connector
- Reference documentation: qan::Connector interface and Qan.VisualConnector component
Groups |
---|
- User Doc: QuickStart - Using Groups
Styles |
---|
- User Doc: QuickStart - Using Styles
- Qt 5.10 is mandatory for Qt Quick Shapes support.
- Google Test is a GTpo dependency, it is optional for QuickQanava until you intent to use a graph with custom non-STL/non-Qt containers:
Get the latest QuickQanava sources:
git clone https://github.com/cneben/QuickQanava
cd QuickQanava
QuickQanava could be used with either qmake or CMake build configuration system.
-
Open quickqanava.pro in QtCreator.
-
Select a kit, build and launch samples.
or (CMake > 3.5)
-
Open CMakeLists.txt in QtCreator.
-
In 'Projects' panel, set DBUILD_SAMPLES option to true in CMake configuration panel.
-
Select a kit, build and launch samples.
Or manually using CMake:
$ git submodule add https://github.com/cneben/QuickQanava
$ git submodule update
$ cd QuickQanava
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SAMPLES=TRUE ..
$ cmake --build .
# Then run the samples
- v0.9.4:
- QuickContainers (Qt/QML observable adapter for STL or Qt containers):
- Redesign QuickContainers: qcm::ContainerModel<> memory footprint is too high (inheritance from QAbstractItemModel comes with a strong virtual and signals/slots overhead)
- Add support for standard library containers.
- Increase test coverage.
- Fix port remove issues.
- Add full CMake support..
- QuickContainers (Qt/QML observable adapter for STL or Qt containers):
- v0.9.5:
- Add support for direct visual dragging of port items.
- Add full support for groups inside group (ie subgraphs).
- Fix current qan::PointGrid bugs and add "snap to grid" support.
- v0.9.6:
- Add more configuration options to qan::Edge (source and destination arrow configuration).
- v1.0.0: Advanced edge visualization
- GTpo (Configurable topology library):
- Redesign using adjacency matrix, immutable and full move semantic support.
- Push test coverage to 100% (ie increase coverage for subgroups).- [80%] Redesign qan::Graph interface for creating content.
- Publish the 4k sample (40k is probably too much for QML without dedicated culling and LOD code).
- GTpo (Configurable topology library):
Copyright (c) 2017 BA