节点编辑器¶
节点编辑器显示可编辑的原理图或图表,显示节点及其属性之间的连接。它允许您查看、修改和创建新的节点连接。
您可以在下面看到一个示例
它有4个主要组成部分
节点编辑器 -节点所在的区域
节点 -包含属性的自由浮动“窗口”
- 属性 -带有Pins的小部件集合,用于创建指向/来自的链接。
可以是输入、输出或静态。
链接 -属性之间的连接
属性可以包含任何UI项。当用户单击并拖动节点的属性时,将运行节点编辑器的回调。DPG将属性的标记通过 _app_data_ 回调的参数。
开发人员有责任创建该链接。
下面是一个基本的例子。您可以抓住输出引脚并将其连接到输入引脚。您可以通过以下方式分离链接 ctrl 单击并拖动该链接。
Code
import dearpygui.dearpygui as dpg
dpg.create_context()
# callback runs when user attempts to connect attributes
def link_callback(sender, app_data):
# app_data -> (link_id1, link_id2)
dpg.add_node_link(app_data[0], app_data[1], parent=sender)
# callback runs when user attempts to disconnect attributes
def delink_callback(sender, app_data):
# app_data -> link_id
dpg.delete_item(app_data)
with dpg.window(label="Tutorial", width=400, height=400):
with dpg.node_editor(callback=link_callback, delink_callback=delink_callback):
with dpg.node(label="Node 1"):
with dpg.node_attribute(label="Node A1"):
dpg.add_input_float(label="F1", width=150)
with dpg.node_attribute(label="Node A2", attribute_type=dpg.mvNode_Attr_Output):
dpg.add_input_float(label="F2", width=150)
with dpg.node(label="Node 2"):
with dpg.node_attribute(label="Node A3"):
dpg.add_input_float(label="F3", width=200)
with dpg.node_attribute(label="Node A4", attribute_type=dpg.mvNode_Attr_Output):
dpg.add_input_float(label="F4", width=200)
dpg.create_viewport(title='Custom Title', width=800, height=600)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()
选择查询¶
您可以检索选定的节点和链接(并使用以下命令清除此选择)
dpg.get_selected_nodes(editor_id)
dpg.get_selected_links(editor_id)
dpg.clear_selected_nodes(editor_id)
dpg.clear_selected_links(editor_id)
节点属性类型¶
以下常量可用于 attribute_type 节点属性的参数
属性 |
mvNode_Attr_Input (默认) |
mvNode_Attr_Output |
mvNode_Attr_Static |
节点属性管脚形状¶
以下常量可用于 shape 节点属性的参数
形状 |
mvNode_PinShape_Circle |
mvNode_PinShape_CircleFilled (默认) |
mvNode_PinShape_Triangle |
mvNode_PinShape_TriangleFilled |
mvNode_PinShape_Quad |
mvNode_PinShape_QuadFilled |
关联项目¶
mvNode
mvNodeAttribute
mvNodeLink