GraphEdit

Inherits: Control < CanvasItem < Node < Object

图形编辑GraphEdit是一个能够显示各种图形节点GraphNodes的区域。它管理着它们之间的连接事件。

描述

图形编辑GraphEdit管理它所包含的图形节点GraphNodes的显示,以及它们之间的连接和断开。这两个事件中的每一个都会发送信号。默认情况下,图形节点GraphNode插槽之间的断开连接是禁用的。

在使用图形编辑GraphEdits时,我们强烈建议启用低处理器使用模式(见OS.low_processor_usage_mode)。

属性

FocusMode

focus_mode

2 (overrides Control)

bool

minimap_enabled

true

float

minimap_opacity

0.65

Vector2

minimap_size

Vector2( 240, 160 )

bool

rect_clip_content

true (overrides Control)

bool

right_disconnects

false

Vector2

scroll_offset

Vector2( 0, 0 )

bool

show_zoom_label

false

int

snap_distance

20

bool

use_snap

true

float

zoom

1.0

float

zoom_max

2.0736

float

zoom_min

0.232568

float

zoom_step

1.2

方法

void

add_valid_connection_type ( int from_type, int to_type )

void

add_valid_left_disconnect_type ( int type )

void

add_valid_right_disconnect_type ( int type )

void

clear_connections ( )

Error

connect_node ( String from, int from_port, String to, int to_port )

void

disconnect_node ( String from, int from_port, String to, int to_port )

Array

get_connection_list ( ) const

HBoxContainer

get_zoom_hbox ( )

bool

is_node_connected ( String from, int from_port, String to, int to_port )

bool

is_valid_connection_type ( int from_type, int to_type ) const

void

remove_valid_connection_type ( int from_type, int to_type )

void

remove_valid_left_disconnect_type ( int type )

void

remove_valid_right_disconnect_type ( int type )

void

set_connection_activity ( String from, int from_port, String to, int to_port, float amount )

void

set_selected ( Node node )

主题属性

Color

activity

Color( 1, 1, 1, 1 )

Color

grid_major

Color( 1, 1, 1, 0.2 )

Color

grid_minor

Color( 1, 1, 1, 0.05 )

Color

selection_fill

Color( 1, 1, 1, 0.3 )

Color

selection_stroke

Color( 1, 1, 1, 0.8 )

int

bezier_len_neg

160

int

bezier_len_pos

80

int

port_grab_distance_horizontal

24

int

port_grab_distance_vertical

6

Texture

minimap

Texture

minus

Texture

more

Texture

reset

Texture

snap

StyleBox

bg

信号

  • _begin_node_move ( )

在图形节点GraphNode移动开始时发出。


  • _end_node_move ( )

在图形节点GraphNode移动结束时发出。


当用户连接输入端口到图形的空位时发出。


当试图创建来自from图形节点GraphNode1的from_slot槽和to图形节点GraphNode2的to_slot槽之间的连接时,会向图形编辑GraphEdit发出。


当用户将输出端口连接到图形的空位时发出。


  • copy_nodes_request ( )

当用户按Ctrl + C时触发。


  • delete_nodes_request ( )

当试图从图形编辑GraphEdit中删除一个图形节点GraphNode时发出。


当试图移除 from 图形节点GraphNode1的 from_slot槽和to 图形节点GraphNode 的to_slot 槽之间的连接时,会发送到图形编辑GraphEdit。


  • duplicate_nodes_request ( )

当图形节点GraphNode试图在图形编辑GraphEdit中被复制时发出的。


  • node_selected ( Node node )

当图形节点GraphNode被选择时发出。


  • node_unselected ( Node node )

  • paste_nodes_request ( )

当用户按下Ctrl + V时触发。


  • popup_request ( Vector2 position )

当请求弹出窗口时发出。在图形编辑GraphEdit中右键单击时发生。坐标position 是发送信号时鼠标指针的位置。


  • scroll_offset_changed ( Vector2 ofs )

当用户改变滚动偏移量时发出。在代码中改变滚动偏移量时,它不会被触发。

属性说明

  • bool minimap_enabled

Default

true

Setter

set_minimap_enabled(value)

Getter

is_minimap_enabled()

如果true,小图是可见的。


Default

0.65

Setter

set_minimap_opacity(value)

Getter

get_minimap_opacity()

小图矩形的不透明度。


Default

Vector2( 240, 160 )

Setter

set_minimap_size(value)

Getter

get_minimap_size()

小图矩形的大小。地图自身基于网格区域的大小,并被缩放以适应这个矩形。


  • bool right_disconnects

Default

false

Setter

set_right_disconnects(value)

Getter

is_right_disconnects_enabled()

如果true,通过拖动右端,可以断开图形编辑GraphEdit中现有的连接。


Default

Vector2( 0, 0 )

Setter

set_scroll_ofs(value)

Getter

get_scroll_ofs()

滚动偏移量。


  • bool show_zoom_label

Default

false

Setter

set_show_zoom_label(value)

Getter

is_showing_zoom_label()

如果true,则使当前缩放级别的标签可见。缩放值以百分比显示。


  • int snap_distance

Default

20

Setter

set_snap(value)

Getter

get_snap()

吸附距离(以像素为单位)。


Default

true

Setter

set_use_snap(value)

Getter

is_using_snap()

如果为true,启用自动吸附。


Default

1.0

Setter

set_zoom(value)

Getter

get_zoom()

当前缩放值。


Default

2.0736

Setter

set_zoom_max(value)

Getter

get_zoom_max()

缩放上限。


Default

0.232568

Setter

set_zoom_min(value)

Getter

get_zoom_min()

缩放下限。


Default

1.2

Setter

set_zoom_step(value)

Getter

get_zoom_step()

每个缩放级别的步长。

方法说明

  • void add_valid_connection_type ( int from_type, int to_type )

使得两个不同插槽型之间的连接成为可能。该类型是通过GraphNode.set_slot方法定义的。


  • void add_valid_left_disconnect_type ( int type )

使得从左边的槽中拖动节点时,如果它有指定的类型,可以断开节点的连接。


  • void add_valid_right_disconnect_type ( int type )

使得从右边的槽中拖动节点时,如果它有指定的类型,可以断开节点的连接。


  • void clear_connections ( )

移除节点之间的所有连接。


from图形节点GraphNode的from_port槽和to图形节点GraphNode的to_port槽之间创建一个连接。如果该连接已经存在,则不创建连接。


删除from 图形节点GraphNode1的from_port插槽与to 图形节点GraphNode2的to_port插槽之间的连接。如果连接不存在,则不会删除任何连接。


  • Array get_connection_list ( ) const

返回一个包含连接列表的数组。一个连接包括一个结构,其形式为{ from_port:0, from: "GraphNode name 0", to_port:1, to:"GraphNode name 1" }.


获取包含图形左上角的缩放和网格捕捉控件的 HBoxContainer。你可以使用此方法重新定位工具栏或向其添加自定义控件。

警告: 这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果你希望隐藏它或其任何子项,请使用它们的 CanvasItem.visible 属性。


如果from 图形节点GraphNode1的from_port槽与to图形节点GraphNode2的to_port槽相连,则返回true


  • bool is_valid_connection_type ( int from_type, int to_type ) const

返回是否有可能连接指定类型的插槽。


  • void remove_valid_connection_type ( int from_type, int to_type )

使得两个不同槽型之间的连接成为不可能。该类型是通过GraphNode.set_slot方法定义的。


  • void remove_valid_left_disconnect_type ( int type )

当节点具有指定的类型,可以从左边的槽中拖动时删除断开节点的功能。


  • void remove_valid_right_disconnect_type ( int type )

当节点具有指定的类型,可以从左边的槽中拖动时删除断开节点的功能。


fromfrom_porttoto_port之间的连接的颜色纹理设置为当前正在使用activity的主题中的颜色。


  • void set_selected ( Node node )

选中一个特定的节点node.

Theme Property Descriptions

Default

Color( 1, 1, 1, 1 )


Default

Color( 1, 1, 1, 0.2 )

主网格线条颜色。


Default

Color( 1, 1, 1, 0.05 )

次要网格线的颜色。


Default

Color( 1, 1, 1, 0.3 )

选定的矩形的填充颜色。


Default

Color( 1, 1, 1, 0.8 )

选择的矩形的轮廓颜色。


  • int bezier_len_neg

Default

160


  • int bezier_len_pos

Default

80


  • int port_grab_distance_horizontal

Default

24

一个端口可以被抓取的水平范围(两侧)。


  • int port_grab_distance_vertical

Default

6

一个端口可以被抓取的垂直范围(两侧)。



缩小按钮的图标。


放大按钮的图标。


缩放重置按钮的图标。


吸附动按钮的图标。


绘制在网格下方的背景。