jchanvfx / nodegraphqt Goto Github PK
View Code? Open in Web Editor NEWNode graph framework that can be re-implemented into applications that supports PySide2
Home Page: http://chantonic.com/NodeGraphQt/
License: MIT License
Node graph framework that can be re-implemented into applications that supports PySide2
Home Page: http://chantonic.com/NodeGraphQt/
License: MIT License
implement node properties widget that displays all the node property fields.
NodePropertyWidget(node=None)
holding down shift key and selecting additional nodes doesn't extend the node selection.
implement a backdrop node type that sits behind all node items and pipes.
I can't get widgets from Nodes
error:
return self.item.all_widgets().items()
AttributeError: 'NodeItem' object has no attribute 'all_widgets'
The code:
def all_widgets(self):
return self._widgets
is missing on class: NodeItem; file: NodeGraphQt/widgets/node.py
not super important more of a aesthetics thing add arrows to pipes.
add a display for nodes that plugins that are missing.
add some documentation for the node graph with github pages.
small bug where alt + MMB zoom is not working in the viewer also need to update the README.md.
I'm using the library as part of an autorig system, and it's becoming very important that users can interact fluidly with the ui to change the displayed names of nodes - most of the interaction conventions I'm looking at implementing are very maya-like, which I get might not be the best vision for this library as a whole. However, the convention of double-clicking a displayed name to change it is common across many applications.
I can have a crack at implementing this if you're too busy - it would probably live in the node_abstract module, and involve a couple of new signals to and from the node model or vendor to check the new name is valid.
It would be extremely useful to have a way of grouping certain inputs and outputs together, ideally recursively. This could be as a compound attribute, where the parent and each of the children can all be connected, or as an array, where only the children are valid. Maya's visual implementation of this isn't amazing, but in practice it's very functional.
The width of the edges between nodes as a heatmap of CPU cycles spend
add a json parser to build node items from the clipboard.
currently icons are quite small would be nice to have a large preview image of some sort in the widget area of a Node item.
currently node graph has no "undo" and "redo" functionality need to implement
see if you can learn from this example:
https://wiki.python.org/moin/PyQt/Undo%20and%20redo%20with%20line%20edits
need a undo command for when a node is created.
will also need to refactor how the undo command are implemented so custom undo blocks can be implemented.
add some padding to the tab search widget and maybe a slight dropshadow.
implement method to slice pipes in the node graph.
Cool project ๐น - for more elaborate DAG's, having a graph layout algorithm clean up the DAG might be useful
implement a tab search widget for the viewer similar to nuke application.
using a mouse track pad doesn't seem zoom in/out properly.
If you click with LMB on a port it causes a KeyError in pipe.py
self.input_port = ports[IN_PORT]
KeyError: 'in'
Maybe its good? Maybe not? I suppose client can subclass to get their own behavior, but it makes the example a bit fragile.
Currently calling nodeGraph.viewer().selected_nodes()
returns a list of NodeGraphQt.widgets.node_base.NodeItem()
instances, regardless of if the selected node types have inherited further. This makes it difficult to query selected nodes in other windows if they are extensions of the base class, and makes it difficult to access any extra functionality that may have been added.
ctrl+shift+x
extract
ctrl+d
remove inputs
implement custom node properties for node to store data node.add_property()
or node.add_knob()
port pyside code to Qt5 with pyside2
PySide2 api: https://doc-snapshots.qt.io/qtforpython/index.html
fix the small bug in the node paint function with.
painter.setClipRect()
implement node state to enable/disable similar to nuke.
node.enable()
, node.disable()
and something visually indicating the node is disabled.
implement undo command when a node is deleted from the scene.
a dialog that can search for node in the current node graph and also add the action under Edit>Search
shotcut key: /
similar to nuke.
implement some kind of widget that displays all nodes in a grid layout with tabs and allows drag n drop to the node graph.
need a list widget that can show all the undo command history.
Currently the node graph workflow is left to right horizontally implement the ability to layout node graph vertically top to bottom.
Implement hot key to align nodes.
implement snap to grid for nodes with threshold setting.
Implement pan and zoom control buttons overlayed on top of the viewer
port the python code to be python 3 compatible
implement validation check so the nodes don't connect to itself in a loop.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.