opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

NodeGraphQt: a node graph UI framework for Qt, with custom widgets and pipe layo...
GitHub RepoImpressions2

Project Description

View on GitHub

Building Node Graphs in Qt Just Got a Whole Lot Easier

If you've ever tried to build a node-based interface from scratch—think compositing tools, shader editors, or data-flow visualizers—you know the pain. You're not just drawing boxes and lines; you're wrestling with hit-testing, connection routing, drag-and-drop semantics, and the endless edge cases of user interaction. It's a rabbit hole that can eat weeks of your life. So what if there was a framework that handled all of that heavy lifting for you, built directly on Qt? That's exactly what NodeGraphQt brings to the table.

What It Does

NodeGraphQt is a node graph UI framework written in Python using Qt. It gives you a fully functional, interactive node graph canvas out of the box—nodes, connections, panning, zooming, the works—so you can focus on the logic of your application rather than the plumbing of its interface.

The framework is designed to be flexible. The README highlights three key areas of customization: layout direction, pipe (connection) styles, and custom widgets. You can switch between horizontal and vertical graph orientations, which is a surprisingly important feature for different domains—some workflows just read better top-to-bottom than left-to-right. The pipe layout options let you change how connections are drawn, whether you want clean bezier curves or something more angular. And the custom widget support means you can embed your own UI elements directly into nodes, like property bins or node palettes for quick access to your node types.

Under the hood, it's pure Python with Qt bindings, which means it slots into existing PySide or PyQt projects without needing a separate runtime or a language switch. The project is well-documented, with a full API reference hosted on GitHub Pages, and it's available on PyPI for straightforward installation.

Why It's Cool

The real value here is that NodeGraphQt isn't just a widget—it's a complete interaction model. Let me break down what makes it stand out:

  • It's opinionated in the right places. Rather than giving you a blank canvas and a pile of primitives, it ships with a working node graph UX. You get the conventions that users expect from professional tools (think Nuke or Houdini) without having to invent them yourself.

  • Layout direction is a first-class feature. Most node graph frameworks assume left-to-right flow. NodeGraphQt lets you flip to a vertical layout with minimal fuss. That's a huge deal if you're building something like a timeline-based tool or a hierarchical data viewer where vertical flow makes more sense.

  • Custom widgets are baked in. The ability to drop custom Qt widgets into your nodes—like the property bin and node palette shown in the docs—means you can build a fairly rich editor without bolting on a separate panel system. It's all integrated.

  • The pipe styling is visual sugar that matters. Connection lines are the most visible part of any node graph, and having control over how they render isn't just cosmetic. Different styles can communicate different data types or relationship strengths at a glance.

  • It's got a real community footprint. The project has a healthy star count, active CI badges for docs and PyPI publishing, and a proper releases page. That suggests it's maintained and not just a weekend experiment.

How to Try It

Getting started is refreshingly simple. First, install it from PyPI:

pip install NodeGraphQt

That's it—no compiling, no system dependencies beyond Qt itself. If you're already working in a Python environment with PySide or PyQt installed, you're good to go.

Once it's installed, the README points you to a basic_example.py script in the repo's examples folder. That's your fastest path to seeing something on screen. For a deeper dive, the documentation at jchanvfx.github.io/NodeGraphQt has API references and example walkthroughs, including a simple example that gets you up and running with a basic graph.

The repository itself is at github.com/jchanvfx/nodegraphqt, where you'll also find release notes and previous versions if you need something specific.

Final Thoughts

NodeGraphQt is one of those tools that you'll appreciate the moment you try to build a node interface yourself and realize how much hidden complexity there is. It's not trying to be a full node-based application—it's a framework, and a focused one at that. If you're building tools for artists, data scientists, or anyone who thinks in graphs, this could save you weeks of work. It's best suited for developers who already live in the Qt ecosystem and want a battle-tested starting point rather than a toy demo. Give the basic example a spin; you'll probably have a working graph in the time it takes to read the docs.

Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: 00668be3-ae44-4fc5-a173-590fc340dc4eLast updated: August 23, 2026 at 02:51 AM