Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
GraphEdit¶
Inherits: Control < CanvasItem < Node < Object
An editor for graph-like structures, using GraphNodes.
Description¶
GraphEdit provides tools for creation, manipulation, and display of various graphs. Its main purpose in the engine is to power the visual programming systems, such as visual shaders, but it is also available for use in user projects.
GraphEdit by itself is only an empty container, representing an infinite grid where GraphNodes can be placed. Each GraphNode represents a node in the graph, a single unit of data in the connected scheme. GraphEdit, in turn, helps to control various interactions with nodes and between nodes. When the user attempts to connect, disconnect, or delete a GraphNode, a signal is emitted in the GraphEdit, but no action is taken by default. It is the responsibility of the programmer utilizing this control to implement the necessary logic to determine how each request should be handled.
Performance: It is greatly advised to enable low-processor usage mode (see OS.low_processor_usage_mode) when using GraphEdits.
Properties¶
clip_contents |
|
|
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Methods¶
Theme Properties¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Signals¶
begin_node_move ( )
Emitted at the beginning of a GraphNode movement.
connection_drag_ended ( )
Emitted at the end of a connection drag.
connection_drag_started ( StringName from_node, int from_port, bool is_output )
Emitted at the beginning of a connection drag.
connection_from_empty ( StringName to_node, int to_port, Vector2 release_position )
Emitted when user drags a connection from an input port into the empty space of the graph.
connection_request ( StringName from_node, int from_port, StringName to_node, int to_port )
Emitted to the GraphEdit when the connection between the from_port
of the from_node
GraphNode and the to_port
of the to_node
GraphNode is attempted to be created.
connection_to_empty ( StringName from_node, int from_port, Vector2 release_position )
Emitted when user drags a connection from an output port into the empty space of the graph.
copy_nodes_request ( )
Emitted when the user presses Ctrl + C.
delete_nodes_request ( StringName[] nodes )
Emitted when attempting to remove a GraphNode from the GraphEdit. Provides a list of node names to be removed (all selected nodes, excluding nodes without closing button).
disconnection_request ( StringName from_node, int from_port, StringName to_node, int to_port )
Emitted to the GraphEdit when the connection between from_port
of from_node
GraphNode and to_port
of to_node
GraphNode is attempted to be removed.
duplicate_nodes_request ( )
Emitted when a GraphNode is attempted to be duplicated in the GraphEdit.
end_node_move ( )
Emitted at the end of a GraphNode movement.
node_deselected ( Node node )
There is currently no description for this signal. Please help us by contributing one!
node_selected ( Node node )
Emitted when a GraphNode is selected.
paste_nodes_request ( )
Emitted when the user presses Ctrl + V.
popup_request ( Vector2 position )
Emitted when a popup is requested. Happens on right-clicking in the GraphEdit. position
is the position of the mouse pointer when the signal is sent.
scroll_offset_changed ( Vector2 offset )
Emitted when the scroll offset is changed by the user. It will not be emitted when changed in code.
Enumerations¶
enum PanningScheme:
PanningScheme SCROLL_ZOOMS = 0
Mouse Wheel will zoom, Ctrl + Mouse Wheel will move the view.
PanningScheme SCROLL_PANS = 1
Mouse Wheel will move the view, Ctrl + Mouse Wheel will zoom.
Property Descriptions¶
bool connection_lines_antialiased = true
If true
, the lines between nodes will use antialiasing.
float connection_lines_curvature = 0.5
The curvature of the lines between the nodes. 0 results in straight lines.
float connection_lines_thickness =