All Projects → cneben → Quickqanava

cneben / Quickqanava

Licence: other
C++14 network/graph visualization library / Qt node editor.

Programming Languages

cpp14
131 projects

Projects that are alternatives of or similar to Quickqanava

Nodeeditor
Qt Node Editor. Dataflow programming framework
Stars: ✭ 1,734 (+183.8%)
Mutual labels:  graph, dataflow-programming, qt5
Graphs.jl
An optimized graphs package for the Julia programming language
Stars: ✭ 197 (-67.76%)
Mutual labels:  graphs, graph-theory
sddm-sugar-dark
The sweetest dark theme around for SDDM, the Simple Desktop Display Manager.
Stars: ✭ 72 (-88.22%)
Mutual labels:  qml, qt5
Lightgraphs.jl
An optimized graphs package for the Julia programming language
Stars: ✭ 611 (+0%)
Mutual labels:  graph, graph-theory
maxLibQt
A collection of C++ classes and QtQuick QML components for use with the Qt framework.
Stars: ✭ 18 (-97.05%)
Mutual labels:  qml, qt5
qak
Qak - the QML Aid Kit
Stars: ✭ 20 (-96.73%)
Mutual labels:  qml, qt5
touchockey
QtQuick2 hockey game using mobile browsers as game controller
Stars: ✭ 22 (-96.4%)
Mutual labels:  qml, qt5
graphi
🌠 An interactive network analysis & visualization tool
Stars: ✭ 20 (-96.73%)
Mutual labels:  graph-theory, graph-visualization
soha
A modern calendar written in qt-quick.
Stars: ✭ 30 (-95.09%)
Mutual labels:  qml, qt5
Pggraphblas
High Performance Graph Processing with Postgres and GraphBLAS
Stars: ✭ 316 (-48.28%)
Mutual labels:  graph-theory, graphs
Fluid
📖 Library for QtQuick apps with Material Design
Stars: ✭ 601 (-1.64%)
Mutual labels:  qt5, qml
QtIosCMake
📱 Deploy Qt Application for iOS with a single macro when using CMake.
Stars: ✭ 35 (-94.27%)
Mutual labels:  qml, qt5
Crusta
Fast, modern and minimal desktop web browser with rich features
Stars: ✭ 53 (-91.33%)
Mutual labels:  qml, qt5
QuickStreams
An asynchronous programming library for the QML programming language (Proof of Concept)
Stars: ✭ 42 (-93.13%)
Mutual labels:  qml, qt5
DeadAscend
A 2D point'n'click-like adventure game written in Qt/QML and Javascript
Stars: ✭ 37 (-93.94%)
Mutual labels:  qml, qt5
tenplayer
Modern Music Player for Linux
Stars: ✭ 18 (-97.05%)
Mutual labels:  qml, qt5
Kglib
Grakn Knowledge Graph Library (ML R&D)
Stars: ✭ 405 (-33.72%)
Mutual labels:  graph, graphs
qtprotobuf
Protobuf generator and bindings for Qt framework
Stars: ✭ 138 (-77.41%)
Mutual labels:  qml, qt5
QtDemos
This is a demo about Qt5, including Qt Custom Widget, Qt Multithreaded Downloader, QML Video Player(using OpenGL, FFmpeg and SDL2)
Stars: ✭ 18 (-97.05%)
Mutual labels:  qml, qt5
QDashBoard
Sample dashboard developed with QML. Login, plots and several screens.
Stars: ✭ 34 (-94.44%)
Mutual labels:  qml, qt5

QuickQanava

Overview | Dependencies | Building | Roadmap | License

Build Status (Linux / g++6 / Qt5.12.1 - OSX / Clang 8.1 / Qt 5.12.1 CMake)

Build status (Windows / MSVC 2015 x64 / Qt5.10.1 / qmake)

Documentation | License | | Twitter URL

There is quite a lot of traffic and clones actually: Please remember to star the project and reports bugs....

QuickQanava is a C++14 library designed to display graphs and relational content in a Qt/QML 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 for Linux with Qt 5.15 with MSVC2017 and g++7.5 (minimal required Qt version is Qt 5.10, recommended is Qt 5.14.2)

For any questions, please contact: [email protected]

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).

QuickQanava Showcase

Toplogy sample video

Edges
Curved-Straight Edges
Nodes
Custom content
Visual Connector
Visual Connector
Groups
Groups
Styles
Custom styles

Dependencies

  • 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: Google Test GitHub

Building

Get the latest QuickQanava sources:

git clone https://github.com/cneben/QuickQanava
cd QuickQanava

Or install as a Git submodule:

$ git submodule add https://github.com/cneben/QuickQanava
$ git submodule update

QuickQanava could be used with either qmake or CMake build configuration system.

qmake cmake
Static build, no QML module, all resources are linked statically trough QRC Installable or embedable, QuickQanava is loaded using a QML module that need to be installed, resources can be linked statically trough QRC

Using qmake (preferred and supported way of integrating QuickQanava):

  1. Open quickqanava.pro in QtCreator.

  2. Select a kit, build and launch samples.

⚠️ CMake support is "community maintained"

or with (CMake >= 3.5) and Qt Creator:

  1. Open CMakeLists.txt in QtCreator.

  2. In 'Projects' panel, set DBUILD_SAMPLES option to true in CMake configuration panel.

  3. Select a kit, build and launch samples.

Or manually in command line using CMake:

$ cd QuickQanava
$ mkdir build
$ cd build

# IF QT_DIR IS CONFIGURED AND QMAKE IN PATH
$ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SAMPLES=TRUE -DBUILD_STATIC_QRC=TRUE ..

# IF QT DIR IS NOT CONFIGURED, CONFIGURE KIT MANUALLY
$ cmake -DCMAKE_PREFIX_PATH="/home/b/Qt/5.11.0/gcc_64" -DQT_QMAKE_EXECUTABLE="/home/b/Qt/5.11.0/gcc_64/bin/qmake"  -DBUILD_SAMPLES=TRUE -DBUILD_STATIC_QRC=TRUE ../QuickQanava/

$ cmake --build .
# Then run the samples in ./samples

# Eventually make install

Detailed instructions: Installation

Note that a previously installed "QML plugin" version of QuickQanava might interfere with a fully static build using direct .pri inclusion. Typical error message looks like:

QQmlApplicationEngine failed to load component
qrc:/nodes.qml:33 module "QuickQanava" plugin "quickqanavaplugin" not found

QuickQanava and QuickContainers plugins directories could be removed manually from $QTDIR\..\qml to fix the problem (ex: rm -rf '~/Qt/5.11.1/gcc_64/qml/QuickQanava').

Roadmap / Changelog

  • Done:
    • [X] Add full support for groups inside group (ie subgraphs).
    • [X] Fix qan::LineGrid bugs
  • Todo:
    • [ ] Rewrite CMake configuration, add install step, use QML plugins.
    • [ ] Update geometry creation interface and delegate management.
    • [ ] Add support for direct visual dragging of port items.
    • [ ] Add "snap to grid" support.
  • v1.: Advanced edge visualization
    • [ ] Add better support for graph fine grained locking strategies.
    • [ ] Add simple layout algorithms (force directed, tree).
    • [ ] Publish the 4k sample (40k is probably too much for QML without dedicated culling and LOD code).

Contributors

  • @kwallner / Conan.io and CMake configuration
  • @Letrab / Edge configuration
  • @machinekoder / QML plugin and CMake configuration
  • @NielsBillen / Ports support and stability fixes

License

License

Copyright (c) 2017-2020 BA

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].