diagram_group.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import dearpygui.dearpygui as dpg
  2. from graph_exploring_tool.graphical.constants import MAIN_DIAGRAM_GROUP_TAG
  3. def create_palette():
  4. with dpg.child_window(width=220, menubar=True):
  5. with dpg.menu_bar():
  6. dpg.add_menu(label="Palette", enabled=False)
  7. with dpg.tree_node(label="Example", default_open=True):
  8. dpg.add_button(label="Test")
  9. dpg.add_text("Test")
  10. with dpg.tooltip(dpg.last_item()):
  11. dpg.add_text("Testing")
  12. def create_diagram():
  13. with dpg.child_window(autosize_x=True, autosize_y=True, menubar=True):
  14. with dpg.menu_bar():
  15. dpg.add_menu(label="Diagram View", enabled=False)
  16. with dpg.node_editor(
  17. callback=lambda sender, app_data: dpg.add_node_link(app_data[0], app_data[1], parent=sender),
  18. delink_callback=lambda sender, app_data: dpg.delete_item(app_data),
  19. minimap=True,
  20. minimap_location=dpg.mvNodeMiniMap_Location_BottomRight,
  21. tag="__diagram_view"
  22. ):
  23. pass
  24. def populate_node_test():
  25. with dpg.node(label="Node 1", pos=[10, 10], parent="__diagram_view"):
  26. with dpg.node_attribute():
  27. dpg.add_input_float(label="F1", width=150)
  28. with dpg.node_attribute(attribute_type=dpg.mvNode_Attr_Output):
  29. dpg.add_input_float(label="F2", width=150)
  30. with dpg.node(label="Node 2", pos=[300, 10], parent="__diagram_view"):
  31. with dpg.node_attribute():
  32. dpg.add_input_float(label="F3", width=200)
  33. with dpg.node_attribute(attribute_type=dpg.mvNode_Attr_Output):
  34. dpg.add_input_float(label="F4", width=200)
  35. with dpg.node(label="Node 3", pos=[10, 150], parent="__diagram_view"):
  36. with dpg.node_attribute():
  37. dpg.add_input_text(label="T5", width=200)
  38. with dpg.node_attribute(attribute_type=dpg.mvNode_Attr_Static):
  39. dpg.add_simple_plot(label="Node Plot", default_value=(0.3, 0.9, 2.5, 8.9), width=200, height=80, histogram=True)
  40. def create_diagram_group():
  41. with dpg.group(horizontal=True, label="Diagram", tag=MAIN_DIAGRAM_GROUP_TAG, show=False):
  42. create_palette()
  43. with dpg.group(horizontal=False):
  44. create_diagram()
  45. populate_node_test()