这是Weta Digital TD jchanvfx 在业余时间做的节点图练习Demo,已经支持PySide2。这是个独立控件,大家可以来使用和填坑了。

导航:

放大/缩小: 鼠标单击+拖动或鼠标向上滚动/鼠标向下滚动
平移场景: 中鼠标单击+拖动或Alt +鼠标左键单击+拖动
适合屏幕: F

快捷键:

选择所有节点: Ctrl + A
删除选定的节点: 退格或删除
复制节点: Ctrl + C(复制到剪贴板)
粘贴节点: Ctrl + V(从剪贴板粘贴)
重复节点: Alt + C
保存节点布局: Ctrl + S
打开节点布局: Ctrl + O
撤消操作: Ctrl + z或Command + z(OSX)
重做动作: Ctrl + Shift + z或Command + Shift + z(OSX)
切换(启用/禁用)节点: d

节点搜索

显示节点搜索: Tab
从选定的节点创建节点: 输入

示例代码段

from NodeGraphQt import NodeGraphWidget, Node

# create a node object
class MyNode(Node):
    """example test node."""

    # set unique node identifier.
    __identifier__ = 'com.chantasticvfx'

    # set initial default node name.
    NODE_NAME = 'Test Node'

    def __init__(self):
        super(MyNode, self).__init__()
        self.add_input('foo')
        self.add_output('bar')

# create a node
my_node = MyNode()

# create node graph.
graph = NodeGraphWidget()

# register node into the node graph.
graph.register_node(MyNode)

# add node to the node graph.
graph.add_node(my_node)

graph.show()

github 代码仓库

https://github.com/jchanvfx/NodeGraphQt