GraphNode

Inherits: Container < Control < CanvasItem < Node < Object

图形节点GraphNode是一个允许多个图形节点GraphNode之间连接的输入和输出槽容器。槽位可以有不同的、不兼容的类型。

描述

图形节点GraphNode是一个容器。每个图形节点GraphNode可以有几个输入和输出槽,有时被称为端口,允许图形节点GraphNode之间的连接。要在图形节点GraphNode上添加一个槽,需要向它添加任何控件Control派生的子节点。

在为图形节点GraphNode添加至少一个子节点后,将在检查器中自动创建名为 "插槽Slot "的新部分。当 "插槽"被展开时,你会看到带有每个槽索引号的列表。你可以点击它们来进一步展开。

在检查器中,你可以启用(显示)或禁用(隐藏)插槽。默认情况下,所有槽都是禁用的,所以你最初可能看不到图形节点GraphNode上的任何槽。你可以给每个插槽指定一个类型。只有相同类型的插槽才能够相互连接。你还可以给插槽指定颜色。为图形节点GraphNode中的每个GUI元素定义了一个输入和输出槽的元组。输入连接在图形节点GraphNode的左边,输出连接在右边。只有启用的插槽才被算作连接。

属性

bool

comment

false

Vector2

offset

Vector2( 0, 0 )

Overlay

overlay

0

bool

resizable

false

bool

selected

false

bool

show_close

false

String

title

""

方法

void

clear_all_slots ( )

void

clear_slot ( int idx )

Color

get_connection_input_color ( int idx )

int

get_connection_input_count ( )

Vector2

get_connection_input_position ( int idx )

int

get_connection_input_type ( int idx )

Color

get_connection_output_color ( int idx )

int

get_connection_output_count ( )

Vector2

get_connection_output_position ( int idx )

int

get_connection_output_type ( int idx )

Color

get_slot_color_left ( int idx ) const

Color

get_slot_color_right ( int idx ) const

int

get_slot_type_left ( int idx ) const

int

get_slot_type_right ( int idx ) const

bool

is_slot_enabled_left ( int idx ) const

bool

is_slot_enabled_right ( int idx ) const

void

set_slot ( int idx, bool enable_left, int type_left, Color color_left, bool enable_right, int type_right, Color color_right, Texture custom_left=null, Texture custom_right=null )

void

set_slot_color_left ( int idx, Color color_left )

void

set_slot_color_right ( int idx, Color color_right )

void

set_slot_enabled_left ( int idx, bool enable_left )

void

set_slot_enabled_right ( int idx, bool enable_right )

void

set_slot_type_left ( int idx, int type_left )

void

set_slot_type_right ( int idx, int type_right )

信号

  • close_request ( )

当图形节点GraphNode被请求关闭时发出。在点击关闭按钮时发生(见show_close)。


当图形节点GraphNode被拖动时发出。


  • offset_changed ( )

当图形节点GraphNode被移动时触发。


  • raise_request ( )

当图形节点GraphNode被要求显示在其他节点之上时触发。在GraphNode获得焦点时触发,即鼠标点击进入。


  • resize_request ( Vector2 new_minsize )

当图形节点GraphNode被要求调整大小时发出。在拖动调整器手柄时发生(见resizable)。


  • slot_updated ( int idx )

当任何图形节点的插槽更新时发出。

枚举

enum Overlay:

  • OVERLAY_DISABLED = 0 --- 没有显示覆盖层。

  • OVERLAY_BREAKPOINT = 1 --- 显示在breakpoint主题属性中设置的覆盖层。

  • OVERLAY_POSITION = 2 --- 显示在主题坐标position属性中设置的叠加层。

属性说明

Default

false

Setter

set_comment(value)

Getter

is_comment()

如果启用true,则GraphNode就是一个注释节点。


Default

Vector2( 0, 0 )

Setter

set_offset(value)

Getter

get_offset()

图形节点 GraphNode 的偏移量,与 GraphEdit 的滚动偏移量相关。

注意:由于 GraphEditContainer,因此不能直接使用位置。


Default

0

Setter

set_overlay(value)

Getter

get_overlay()

设置在图形节点GraphNode上方显示的叠加层。参阅Overlay


Default

false

Setter

set_resizable(value)

Getter

is_resizable()

如果true,用户可以调整图形节点GraphNode的大小。

注意:拖动手柄只会发出 resize_request 信号,图形节点GraphNode需要手动调整大小。


Default

false

Setter

set_selected(value)

Getter

is_selected()

如果true,图形节点GraphNode被选中。


Default

false

Setter

set_show_close_button(value)

Getter

is_close_button_visible()

如果true,则关闭按钮将可见。

注意:按下它只会发出close_request信号,需要手动删除图形节点GraphNode。


Default

""

Setter

set_title(value)

Getter

get_title()

显示在图形节点GraphNode标题栏中的文本。

方法说明

  • void clear_all_slots ( )

禁用GraphNode的所有输入和输出槽。


  • void clear_slot ( int idx )

禁用索引为idx的输入和输出槽。


  • Color get_connection_input_color ( int idx )

返回输入连接idx的颜色Color


  • int get_connection_input_count ( )

返回图形节点GraphNode的启用输入槽(连接)的数量。


  • Vector2 get_connection_input_position ( int idx )

返回输入连接idx的位置。


  • int get_connection_input_type ( int idx )

返回输入连接的类型idx


  • Color get_connection_output_color ( int idx )

返回输出连接idx的颜色Color


  • int get_connection_output_count ( )

返回图形节点GraphNode的启用输出槽(连接)的数量。


  • Vector2 get_connection_output_position ( int idx )

返回输出连接idx的位置。


  • int get_connection_output_type ( int idx )

返回输出连接的类型idx


  • Color get_slot_color_left ( int idx ) const

返回槽idx的左边(输入)颜色Color


  • Color get_slot_color_right ( int idx ) const

返回槽idx的右边(输出)颜色Color


  • int get_slot_type_left ( int idx ) const

返回槽idx的左边(输入)类型。


  • int get_slot_type_right ( int idx ) const

返回槽idx的右边(输出)类型。


  • bool is_slot_enabled_left ( int idx ) const

如果插槽idx的左侧(输入)被启用,返回true


  • bool is_slot_enabled_right ( int idx ) const

如果插槽idx的右侧(输出)被启用,返回true


设置ID为idx的插槽的属性。

如果enable_left/right,就会出现一个端口,该插槽就可以从这一侧连接。

type_left/right是端口的一个任意类型。只有具有相同类型值的端口才能被连接。

color_left/right是端口在这一侧的图标的色调。

custom_left/right是这一侧的端口的自定义纹理。

注意: 这个方法只设置槽的属性。要创建槽,需要在GraphNode中添加一个Control的派生类。

可以使用set_slot_*方法之一来设置单个属性。你必须至少启用插槽的一边才能这样做。


  • void set_slot_color_left ( int idx, Color color_left )

将插槽idx左侧(输入)的颜色Color设置为color_left


  • void set_slot_color_right ( int idx, Color color_right )

将插槽idx的右侧(输出)的颜色Color设置为color_right


  • void set_slot_enabled_left ( int idx, bool enable_left )

切换插槽的左侧(输入)idx。 如果enable_lefttrue,左边将出现一个端口,插槽将能够从这一边连接。


  • void set_slot_enabled_right ( int idx, bool enable_right )

切换插槽的右侧(输出)idx。如果enable_righttrue,右侧将出现一个端口,插槽将能够从这一侧连接。


  • void set_slot_type_left ( int idx, int type_left )

将插槽idx的左侧(输入)类型设置为type_left


  • void set_slot_type_right ( int idx, int type_right )

将插槽idx的右(输出)类型设置为type_right

Theme Property Descriptions

Default

Color( 0, 0, 0, 1 )

应用于关闭按钮图标的颜色调制(modulation)。


Default

Color( 0, 0, 0, 1 )

应用于调整尺寸大小图标的颜色调制。


Default

Color( 0, 0, 0, 1 )

标题文字的颜色。


  • int close_offset

Default

18

关闭按钮的垂直偏移量。


  • int port_offset

Default

3

端口的水平偏移量。


  • int separation

Default

1

端口之间的垂直距离。


  • int title_offset

Default

20

标题文本的垂直偏移量。


对标题文本应用的字体。


关闭按钮的图标会在启用show_close时可见。


该图标用于表示端口。


用于调整大小的图标,在 resizable被启用时可见。


overlay被设置为OVERLAY_BREAKPOINT时使用的背景。


当启用comment时使用的StyleBox


comment被启用,且GraphNode获得焦点时使用的StyleBox




GraphNode的默认背景。


overlay设置为OVERLAY_POSITION时使用的背景。


GraphNode被选中时使用的背景。