-
Notifications
You must be signed in to change notification settings - Fork 12
Introduction
TkNodeSystem is a nodal-interface, basically a DAG where each node performs an operation on it's input connections, and outputs something (which you can connect to another node).
It can be used to implement flow-based operations in your application. It can be used with tkinter or customtkinter easily as it is created with tkinter canvas.
Note that the node components are not separate widgets like customtkinter. The whole canvas is one parent widget and other components are drawn inside that canvas.
Internal components of TkNodeSystem are:
- node canvas: containing the grid image and other bindings
- node frame: containing round rectangle and text
- node sockets: containing circle which acts as connector, attached to the node frame
- node wires: the lines are created when output is connected to some input
- node menu: a separate widget for searching and spawning new nodes
Final components of TkNodeSystem:
- NodeCanvas
- NodeValue
- NodeOperation
- NodeCompile
- NodeMenu
The flow is always from output-->input(s)
These is the preferred way of importing the package:
from tknodesystem import *or
from tknodesystem import NodeCanvas, NodeValue, NodeOperation, NodeCompile, NodeMenuThis node system is not like the Blender node system, but similar to the node system of Davinci Resolve (fusion), Natron or Nuke.
We cannot place any widget inside the nodes which limits that functionality, this is because other widgets are always on top of canvas objects. The problem was also asked here, but there is no solution to it.