QtNodes
A Qt-based library for building node graph editors
.. image:: /_static/screenshots/calculator.png :alt: QtNodes editor showing a calculator example :align: center
QtNodes lets you create interactive node-based interfaces for visual programming, data flow applications, shader editors, state machines, and more. Built on Qt's Model-View architecture, it separates your data from its visual representation.
.. code-block:: cpp
// Create a graph and display it in 5 lines DataFlowGraphModel model(registry); DataFlowGraphicsScene scene(model); GraphicsView view(&scene); view.show();
Key Features
- Model-View Architecture -- Your graph data stays independent of the UI
- Data Flow Support -- Built-in data propagation between connected nodes
- Headless Mode -- Run graph computations without any GUI
- Customizable -- Custom painters, styles, and node geometries
- Serialization -- Save and load graphs as JSON
- Undo/Redo -- Built-in support via Qt's undo framework
Two Approaches
.. list-table:: :widths: 50 50 :header-rows: 1
-
- Simple Graph Visualization
- Data Flow Processing
-
- Use
AbstractGraphModel+BasicGraphicsScene - Use
DataFlowGraphModel+DataFlowGraphicsScene
- Use
-
- You manage all graph data
- Library manages node delegates and data routing
-
- Best for: visualization, custom graph logic
- Best for: visual programming, calculators, pipelines
Getting Started
.. toctree:: :maxdepth: 1
getting-started/installation getting-started/quickstart getting-started/concepts
User Guide
.. toctree:: :maxdepth: 1
guide/graph-models guide/data-flow guide/visualization guide/styling guide/serialization guide/undo-redo guide/advanced
Examples
.. toctree:: :maxdepth: 1
examples/index
API Reference
.. toctree:: :maxdepth: 1
api/index api/classes
Other Resources
.. toctree:: :maxdepth: 1
migration/v2-to-v3 faq testing license_link
Indices
- :ref:
genindex