QtNodes

A Qt-based library for building node graph editors

QtNodes editor showing a calculator example

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.

// 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

Simple Graph Visualization

Data Flow Processing

Use AbstractGraphModel + BasicGraphicsScene

Use DataFlowGraphModel + DataFlowGraphicsScene

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

User Guide

Examples

API Reference

Other Resources

Indices