NodeLink is a qml node editor library that can be used for a wide range of applications. This library allows for the visualization and manipulation of complex graphs while also providing the flexibility for customization and integration with other software.
Read the full documentation for NodeLink→ NodeLink Docs
The Nodelink library is a tool that can be used to connect different components within a system or application. To use this library, one can refer to the examples provided within the library and follow the instructions accordingly. The examples provided serve as a guide and demonstrate how to connect different nodes and manipulate data between them.
- Linux (x64, gcc-7.0, clang-7)
- OSX (Apple Clang - LLVM 3.6)
- Windows (Win32, x64, msvc2017, MinGW 5.3)
- C++ standard: C++17 (project is tested with C++17-compatible toolchains).
- CMake: ≥ 3.8 (recommended: 3.20+).
- Compilers (examples):
- Linux: GCC ≥ 7.0 or Clang ≥ 7.0
- Windows: MSVC 2019 (Visual Studio 2019) or MinGW (if supported)
- macOS: Apple Clang
- Optional / recommended tools:
nprocor similar for parallelmake -j- Git ≥ 2.20 (to handle submodules comfortably)
- Qt: ≥ 6.2.4 (project tested with Qt 6.2.4+).
- Required Qt modules (used by NodeLink QML components):
QtQuickQtQuick.ControlsQtQmlQtQuick.Layouts
The main features are as follows:
- MVC design
- Background/Foreground drawings
- Custom Node UI
- Custom Node Data
- Custom Link/Connection
- Link/Connection Type (Bezzier, Straight Line, L Shape, etc)
- Scene Overview
- Dynamic Links/Ports
- Dynamic Scene
- Undo/Redo
- Zooming
- Save/Load
- Snapping
- Zoom performance
Any suggestions are welcome!
- The repo uses Git submodules for some dependencies. You must clone/update submodules to get a working tree.
- You can build from command-line (CMake + make / ninja) or with Qt Creator.
Recommended (single step):
git clone --recursive git@github.com:Roniasoft/NodeLink.git
cd NodeLinkIf you already cloned without --recursive:
git submodule update --init --recursiveIf you want to update submodules to their remote branches later:
git submodule update --remote --merge mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make installNotes: To change install location use -DCMAKE_INSTALL_PREFIX=/your/path.
- Open
CMakeLists.txtas project. Build -> Run CMakeBuild -> Build All- Click the button
Run
Missing Qt modules: make sure your Qt installation includes QtQuick, QtQuick.Controls, and other listed modules.
Submodule folders empty: run git submodule update --init --recursive.
CMake errors: delete build/ and re-run CMake to get a clean configure.
#. Be polite, respectful and collaborative. #. For submitting a bug:
#. Describe your environment (Qt version, compiler, OS etc) #. Describe steps to reproduce the issue
#. For submitting a pull request:
#. Create a proposal task first. We can come up with a better design together. #. Create a pull-request. If applicable, create a simple example for your problem, describe the changes in details, provide use cases.
#. For submitting a development request:
#. Describe your issue in details #. Provide some use cases.
RONIA AB, NodeLink, (2023), GitHub repository, https://github.com/Roniasoft/NodeLink
BibTeX::
@misc{RONIA AB,
author = {RONIA AB},
title = {NodeLink. Qt Quick Library},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/Roniasoft/NodeLink}},
commit = {6ba9c66cdbc8e6d00fd4a8c6b3bde05c616cfa6a}
}
This project is licensed under the Apache License, Version 2.0.
You are free to:
- Use the library in both open-source and commercial projects.
- Modify and redistribute it under the same license.
- Include it as part of larger Qt/QML applications.
When redistributing or using this library, you must:
- Include a copy of the LICENSE file.
- Provide proper attribution (e.g., link to this repository or mention "NodeLink by RONIA").
For the full terms and conditions, see the Apache License 2.0.







