Diagram / Schematic components library
-
Hi,
The past couple of months I've been working on a library that provides components to allow drawing diagrams or schematics in a Qt application. It's called
QSchematic
and is available as open source (BSD 3-clause) at github.The library is far from finished but I think that this might already be useful for someone. Here's a very shot video that only shows the main features: https://youtu.be/7gylsElx4NA. Screenshots & UML diagrams can be found in the readme.
Excerpt from the
readme.md
:QSchematic is a library to draw diagrams & schematics with Qt. It uses Qt's graphics view framework. The library provides base classes for objects such as nodes and wires and implements logic to move objects around while keeping the wires connected, generating netlists and so on. A typical application would include this library and subclass the Item class to implement custom items. Feature overview: - Add, remove, move, resize nodes - Connect nodes with wires - Undo/redo - Drag'n'Drop - Template based netlist generation - Serialization to/from XML (powered by GPDS) - Completely customizable by inheriting from the provided classes - Optional grid with full support for snap-to-grid in all base classes Technical stuff: - Written in C++ - Everything is contained within the QSchematic namespace - Tested with Qt5 - No dependencies other than Qt5 and a C++17 compatible compiler - BSD 3-clause licensed
There's a very cure demo application that comes with the library.
Any kind of feedback & contributions are highly welcomed.Here's a screenshot for the people that just quickly glance over this:
-
@Joel-Bodenmann thx for sharing your work
-
@Joel-Bodenmann - thanks for sharing! Are there PyQt5 bindings for this widget? I am not very familiar with how to create one, but can volunteer my time if you guide.
-
@svanimisetti I never created any python bindings but I assume that this would be fairly easy to do. Presumably you would easily find some official documentation, guide, tutorial and examples on this topic.
I'll gladly answer any QSchematic specific question I can.