控制

Inherits: CanvasItem < Node < Object

继承人: BaseButtonColorRectContainerGraphEditItemListLabelLineEditNinePatchRectPanelPopupRangeReferenceRectRichTextLabelSeparatorTabsTextEditTextureRectTreeVideoPlayer

类别: 核心

简要说明

所有用户界面节点都继承自控件。控件的定位点和页边距相对于其父控件调整其位置和大小。

方法

bool

_clips_input ( ) virtual

Vector2

_get_minimum_size ( ) virtual

无效

_gui_input ( InputEvent event ) virtual

Object

_make_custom_tooltip ( String for_text ) virtual

无效

accept_event ( )

无效

add_color_override ( String name, Color color )

无效

add_constant_override ( String name, int constant )

无效

add_font_override ( String name, Font font )

无效

add_icon_override ( String name, Texture texture )

无效

add_shader_override ( String name, Shader shader )

无效

add_stylebox_override ( String name, StyleBox stylebox )

bool

can_drop_data ( Vector2 position, Variant data ) virtual

无效

drop_data ( Vector2 position, Variant data ) virtual

无效

force_drag ( Variant data, Control preview )

float

get_anchor ( Margin margin ) const

Vector2

get_begin ( ) const

Color

get_color ( String name, String type="" ) const

Vector2

get_combined_minimum_size ( ) const

int

get_constant ( String name, String type="" ) const

CursorShape

get_cursor_shape ( Vector2 position=Vector2( 0, 0 ) ) const

Object

get_drag_data ( Vector2 position ) virtual

Vector2

get_end ( ) const

NodePath

get_focus_neighbour ( Margin margin ) const

Control

get_focus_owner ( ) const

Font

get_font ( String name, String type="" ) const

Rect2

get_global_rect ( ) const

Texture

get_icon ( String name, String type="" ) const

float

get_margin ( Margin margin ) const

Vector2

get_minimum_size ( ) const

Vector2

get_parent_area_size ( ) const

Control

get_parent_control ( ) const

Rect2

get_rect ( ) const

float

get_rotation ( ) const

StyleBox

get_stylebox ( String name, String type="" ) const

String

get_tooltip ( Vector2 at_position=Vector2( 0, 0 ) ) const

无效

grab_click_focus ( )

无效

grab_focus ( )

bool

has_color ( String name, String type="" ) const

bool

has_color_override ( String name ) const

bool

has_constant ( String name, String type="" ) const

bool

has_constant_override ( String name ) const

bool

has_focus ( ) const

bool

has_font ( String name, String type="" ) const

bool

has_font_override ( String name ) const

bool

has_icon ( String name, String type="" ) const

bool

has_icon_override ( String name ) const

bool

has_point ( Vector2 point ) virtual

bool

has_shader_override ( String name ) const

bool

has_stylebox ( String name, String type="" ) const

bool

has_stylebox_override ( String name ) const

无效

minimum_size_changed ( )

无效

release_focus ( )

无效

set_anchor ( Margin margin, float anchor, bool keep_margin=false, bool push_opposite_anchor=true )

无效

set_anchor_and_margin ( Margin margin, float anchor, float offset, bool push_opposite_anchor=false )

无效

set_anchors_and_margins_preset ( LayoutPreset preset, LayoutPresetMode resize_mode=0, int margin=0 )

无效

set_anchors_preset ( LayoutPreset preset, bool keep_margins=false )

无效

set_begin ( Vector2 position )

无效

set_drag_forwarding ( Control target )

无效

set_drag_preview ( Control control )

无效

set_end ( Vector2 position )

无效

set_focus_neighbour ( Margin margin, NodePath neighbour )

无效

set_global_position ( Vector2 position, bool keep_margins=false )

无效

set_margin ( Margin margin, float offset )

无效

set_margins_preset ( LayoutPreset preset, LayoutPresetMode resize_mode=0, int margin=0 )

无效

set_position ( Vector2 position, bool keep_margins=false )

无效

set_rotation ( float radians )

无效

set_size ( Vector2 size, bool keep_margins=false )

无效

show_modal ( bool exclusive=false )

无效

warp_mouse ( Vector2 to_position )

信号

  • focus_entered ( )

当节点获得键盘焦点时发出。

  • focus_exited ( )

当节点失去键盘焦点时发出。

当节点接收到 InputEvent .

  • minimum_size_changed ( )

当节点的最小大小更改时发出。

  • modal_closed ( )

当模式 Control 已关闭。见 show_modal .

  • mouse_entered ( )

当鼠标进入控件时发出 Rect 区域,前提是 mouse_filter 让事件到达它。

  • mouse_exited ( )

当鼠标离开控件时发出 Rect 区域,前提是 mouse_filter 让事件到达它。

  • resized ( )

控件更改大小时发出。

  • size_flags_changed ( )

当其中一个大小标志更改时发出。见 size_flags_horizontalsize_flags_vertical .

枚举

枚举 FocusMode

  • FOCUS_NONE = 0 ---节点无法获取焦点。与一起使用 focus_mode .

  • FOCUS_CLICK = 1 ---节点只能通过鼠标点击来获取焦点。与一起使用 focus_mode .

  • FOCUS_ALL = 2 ---该节点可以通过鼠标单击或使用键盘上的箭头和制表键来获取焦点。与一起使用 focus_mode .

枚举 CursorShape

  • CURSOR_ARROW = 0 ---当用户悬停节点时,显示系统的箭头鼠标光标。与一起使用 mouse_default_cursor_shape .

  • CURSOR_IBEAM = 1 ---用户悬停节点时,显示系统的工字梁鼠标光标。工字钢指针的形状类似于“I”。它告诉用户可以突出显示或插入文本。

  • CURSOR_POINTING_HAND = 2 ---用户悬停节点时,显示系统的鼠标指针。

  • CURSOR_CROSS = 3 ---用户悬停节点时,显示系统的鼠标光标。

  • CURSOR_WAIT = 4 ---当用户悬停在节点上时,显示系统的等待鼠标光标,通常是沙漏。

  • CURSOR_BUSY = 5 ---用户悬停节点时,显示系统繁忙的鼠标光标。通常是沙漏。

  • CURSOR_DRAG = 6 ---当用户悬停在节点上时,显示系统的拖动鼠标光标,通常是闭合的拳头或十字符号。它告诉用户他们当前正在拖动一个项目,如场景停靠中的节点。

  • CURSOR_CAN_DROP = 7 ---当用户悬停节点时,显示系统的鼠标光标。它可以是一只张开的手。它告诉用户,他们可以放下当前正在抓取的项目,就像场景停靠中的节点一样。

  • CURSOR_FORBIDDEN = 8 ---用户悬停节点时,显示系统禁止使用的鼠标光标。通常是一个交叉的圆。

  • CURSOR_VSIZE = 9 ---当用户悬停节点时,显示系统的垂直调整鼠标光标。双头垂直箭头。它告诉用户可以垂直调整窗口或面板的大小。

  • CURSOR_HSIZE = 10 ---当用户悬停节点时,显示系统的水平调整鼠标光标。双头水平箭头。它告诉用户可以水平调整窗口或面板的大小。

  • CURSOR_BDIAGSIZE = 11 ---当用户悬停节点时,显示系统的窗口调整鼠标光标大小。光标是一个从左下到右上的双头箭头。它告诉用户可以水平和垂直调整窗口或面板的大小。

  • CURSOR_FDIAGSIZE = 12 ---当用户悬停节点时,显示系统的窗口调整鼠标光标大小。光标是一个从左上到右下的双头箭头,与 CURSOR_BDIAGSIZE . 它告诉用户可以水平和垂直调整窗口或面板的大小。

  • CURSOR_MOVE = 13 ---当用户悬停节点时,显示系统的移动鼠标光标。它显示两个90度角的双头箭头。它告诉用户他们可以自由移动UI元素。

  • CURSOR_VSPLIT = 14 ---用户悬停节点时,显示系统的垂直拆分鼠标光标。在窗户上,它和 CURSOR_VSIZE .

  • CURSOR_HSPLIT = 15 ---用户悬停节点时,显示系统的水平拆分鼠标光标。在窗户上,它和 CURSOR_HSIZE .

  • CURSOR_HELP = 16 ---当用户悬停节点时,显示系统的帮助鼠标光标,一个问号。

枚举 LayoutPreset

  • PRESET_TOP_LEFT = 0 ---将所有4个锚都捕捉到父控件边界的左上角。与一起使用 set_anchors_preset .

  • PRESET_TOP_RIGHT = 1 ---将所有4个锚都捕捉到父控件边界的右上角。与一起使用 set_anchors_preset .

  • PRESET_BOTTOM_LEFT = 2 ---将所有4个锚都捕捉到父控件边界的左下角。与一起使用 set_anchors_preset .

  • PRESET_BOTTOM_RIGHT = 3 ---将所有4个锚都捕捉到父控件边界的右下角。与一起使用 set_anchors_preset .

  • PRESET_CENTER_LEFT = 4 ---将所有4个锚点捕捉到父控件边界左边缘的中心。与一起使用 set_anchors_preset .

  • PRESET_CENTER_TOP = 5 ---将所有4个锚点捕捉到父控件边界上边缘的中心。与一起使用 set_anchors_preset .

  • PRESET_CENTER_RIGHT = 6 ---将所有4个锚点捕捉到父控件边界右边缘的中心。与一起使用 set_anchors_preset .

  • PRESET_CENTER_BOTTOM = 7 ---将所有4个锚点都捕捉到父控件边界下边缘的中心。与一起使用 set_anchors_preset .

  • PRESET_CENTER = 8 ---将所有4个锚点捕捉到父控件边界的中心。与一起使用 set_anchors_preset .

  • PRESET_LEFT_WIDE = 9 ---将所有4个锚点捕捉到父控件的左边缘。左边距变为相对于左边缘,上边距变为相对于节点父级的左上角。与一起使用 set_anchors_preset .

  • PRESET_TOP_WIDE = 10 ---将所有4个锚点捕捉到父控件的上边缘。左边距相对于左上角、上边缘相对于上边缘、右边缘相对于节点父节点的右上角。与一起使用 set_anchors_preset .

  • PRESET_RIGHT_WIDE = 11 ---将所有4个锚点都对齐到父控件的右边缘。右边距变为相对于右边缘,上边距变为相对于节点父节点右上角。与一起使用 set_anchors_preset .

  • PRESET_BOTTOM_WIDE = 12 ---将所有4个锚点捕捉到父控件的下边缘。左边距变为相对于左下角,下边缘变为相对于下边缘,右边缘变为相对于节点父节点右下角。与一起使用 set_anchors_preset .

  • PRESET_VCENTER_WIDE = 13 ---将所有4个锚点都捕捉到一条垂直线,该垂直线将父控件切成两半。与一起使用 set_anchors_preset .

  • PRESET_HCENTER_WIDE = 14 ---将所有4个锚点对齐到一条水平线,该水平线将父控件切成两半。与一起使用 set_anchors_preset .

  • PRESET_WIDE = 15 ---将所有4个锚点对齐到父控件的各个角。应用此预设和 Control 将适合其父控件。这相当于编辑器中的“完整矩形”布局选项。与一起使用 set_anchors_preset .

枚举 LayoutPresetMode

  • PRESET_MODE_MINSIZE = 0

  • PRESET_MODE_KEEP_WIDTH = 1

  • PRESET_MODE_KEEP_HEIGHT = 2

  • PRESET_MODE_KEEP_SIZE = 3

枚举 SizeFlags

枚举 MouseFilter

  • MOUSE_FILTER_STOP = 0 ---控件将通过以下方式接收鼠标按钮输入事件: _gui_input 如果单击。控制中心将收到 mouse_enteredmouse_exited 信号。这些事件将自动标记为已处理,并且不会进一步传播到其他控件。这也会导致其他控件中的信号阻塞。

  • MOUSE_FILTER_PASS = 1 ---控件将通过以下方式接收鼠标按钮输入事件: _gui_input 如果单击。控制中心将收到 mouse_enteredmouse_exited 信号。如果此控件不处理该事件,则将考虑父控件(如果有),依此类推,直到没有更多的父控件可以潜在地处理它。这也允许信号在其他控件中触发。即使没有任何控件处理它,事件仍将自动处理,因此不会激发未处理的输入。

  • MOUSE_FILTER_IGNORE = 2 ---控件不会通过以下方式接收鼠标按钮输入事件: _gui_input . 控件也不会接收 mouse_entered 也不 mouse_exited 信号。这不会阻止其他控件接收这些事件或触发信号。忽略的事件不会自动处理。

枚举 GrowDirection

  • GROW_DIRECTION_BEGIN = 0 ---如果控件的最小大小更改为大于其在各自轴上的当前大小,则控件将向左或向上增长以弥补。

  • GROW_DIRECTION_END = 1 ---如果控件的最小大小更改为大于其在各自轴上的当前大小,则控件将向右或向下扩展以进行弥补。

  • GROW_DIRECTION_BOTH = 2 ---如果控件的最小大小更改为大于当前大小,则控件将在两个方向上平均增长以弥补。

枚举

  • ANCHOR_BEGIN = 0 ---将4个锚的一侧之一捕捉到节点的原点 Rect ,在左上角。把它和一个 anchor_* 成员变量,如 anchor_left . 要同时更改所有4个锚,请使用 set_anchors_preset .

  • ANCHOR_END = 1 ---将4个锚的一侧之一捕捉到节点的末端 Rect 在右下角。把它和一个 anchor_* 成员变量,如 anchor_left . 要同时更改所有4个锚,请使用 set_anchors_preset .

常量

  • NOTIFICATION_RESIZED = 40 ---节点更改大小时发送。使用 rect_size 以获得新尺寸。

  • NOTIFICATION_MOUSE_ENTER = 41 ---鼠标指针进入节点时发送。

  • NOTIFICATION_MOUSE_EXIT = 42 ---鼠标指针退出节点时发送。

  • NOTIFICATION_FOCUS_ENTER = 43 ---节点获取焦点时发送。

  • NOTIFICATION_FOCUS_EXIT = 44 ---节点失去焦点时发送。

  • NOTIFICATION_THEME_CHANGED = 45 ---当节点的 theme 更改,就在Godot重新绘制控件之前。当你调用 add_*_override 方法。

  • NOTIFICATION_MODAL_CLOSE = 46 ---打开模式对话框关闭时发送。见 show_modal .

  • NOTIFICATION_SCROLL_BEGIN = 47 ---此节点位于 ScrollContainer 它已经开始滚动。

  • NOTIFICATION_SCROLL_END = 48 ---此节点位于 ScrollContainer 它已停止滚动。

描述

所有与UI相关的节点的基类。 Control 其特征是定义范围的边界矩形、相对于其父控件或当前视区的定位点位置以及表示定位点偏移的边距。当节点、其父节点或屏幕大小发生变化时,页边距自动更新。

有关Godot的UI系统、锚、页边距和容器的详细信息,请参阅手册中的相关教程。要构建灵活的UI,您需要混合继承自 ControlContainer 节点。

用户界面节点和输入

godot首先通过调用 Node._input . Node._input 将事件沿节点树向下转发到鼠标光标下或键盘焦点上的节点。要做到这一点,它需要 MainLoop._input_event . 呼叫 accept_event 因此没有其他节点接收到该事件。一旦你接受了一个输入,它就会被处理。 Node._unhandled_input 不会处理它。

只有一个 Control 节点可以在键盘焦点处。只有处于焦点的节点才会接收键盘事件。要获得焦点,请致电 grab_focus . Control 当另一个节点抓取节点或隐藏该节点时,节点将失去焦点。

集合 mouse_filterMOUSE_FILTER_IGNORE 告诉 Control 忽略鼠标或触摸事件的节点。如果你把一个图标放在一个按钮的顶部,你就需要它。

Theme 资源更改控件的外观。如果你改变 Theme 在一 Control 节点,它影响它的所有子节点。若要重写主题的某些参数,请调用 add_*_override 方法,比如 add_font_override . 可以使用检查器覆盖主题。

属性描述

违约

0.0

吸气剂

获取锚()。

将节点的下边缘锚定到其父控件的原点、中心或末端。当节点移动或更改大小时,它会更改下边距的更新方式。您可以使用 ANCHOR_* 常量以方便使用。

违约

0.0

吸气剂

获取锚()。

将节点的左边缘锚定到其父控件的原点、中心或末端。它更改节点移动或更改大小时左边距的更新方式。您可以使用 ANCHOR_* 常量以方便使用。

违约

0.0

吸气剂

获取锚()。

将节点的右边缘锚定到其父控件的原点、中心或末端。当节点移动或更改大小时,它会更改右边距的更新方式。您可以使用 ANCHOR_* 常量以方便使用。

违约

0.0

吸气剂

获取锚()。

将节点的上边缘锚定到其父控件的原点、中心或末端。当节点移动或更改大小时,它会更改上边距的更新方式。您可以使用 ANCHOR_* 常量以方便使用。

违约

0

设定器

设置焦点模式(值)

吸气剂

获取焦点模式()

控件的焦点访问模式(无、单击或全部)。只有一个控件可以同时聚焦,它将接收键盘信号。

违约

节点路径(“”)

设定器

设置焦点邻居(值)

吸气剂

获得焦点邻居

告诉Godot,如果用户按键盘上的向下箭头或默认情况下按游戏板上的向下箭头,它应该将键盘焦点放在哪个节点上。您可以通过编辑 ui_down 输入动作。节点必须是 Control . 如果不设置此属性,Godot将焦点放在最近的 Control 到了这个的底部。

违约

节点路径(“”)

设定器

设置焦点邻居(值)

吸气剂

获得焦点邻居

告诉Godot如果用户按键盘上的左箭头或默认情况下按游戏板上的左箭头,它应该将键盘焦点放在哪个节点上。您可以通过编辑 ui_left 输入动作。节点必须是 Control . 如果不设置此属性,Godot将焦点放在最近的 Control 在这个的左边。

违约

节点路径(“”)

设定器

设置焦点邻居(值)

吸气剂

获得焦点邻居

告诉Godot如果用户按键盘上的右箭头或默认情况下按游戏板上的右箭头,它应该将键盘焦点放在哪个节点上。您可以通过编辑 ui_right 输入动作。节点必须是 Control . 如果不设置此属性,Godot将焦点放在最近的 Control 到了这个的底部。

违约

节点路径(“”)

设定器

设置焦点邻居(值)

吸气剂

获得焦点邻居

告诉Godot,如果用户按键盘上的上箭头或游戏板上的上箭头,默认情况下,应该将键盘焦点放在哪个节点上。您可以通过编辑 ui_top 输入动作。节点必须是 Control . 如果不设置此属性,Godot将焦点放在最近的 Control 到了这个的底部。

违约

节点路径(“”)

设定器

设置下一个焦点(值)

吸气剂

获得焦点下一个()

告诉godot如果用户默认按下键盘上的tab键,它应该将键盘焦点放在哪个节点上。您可以通过编辑 ui_focus_next 输入动作。

如果未设置此属性,Godot将根据场景树中的周围节点选择“最佳猜测”。

违约

节点路径(“”)

设定器

设置上一个焦点(值)

吸气剂

获得焦点前一页()

告诉godot如果用户默认按下键盘上的shift+tab键,它应该将键盘焦点放在哪个节点上。您可以通过编辑 ui_focus_prev 输入动作。

如果未设置此属性,Godot将根据场景树中的周围节点选择“最佳猜测”。

违约

1

设定器

设置成长方向(值)

吸气剂

获取成长方向()。

如果控件的水平最小大小更改为大于其当前大小,则控制该控件在水平轴上的增长方向,因为控件必须始终至少为最小大小。

违约

1

设定器

设置成长方向(值)

吸气剂

获取增长方向()。

如果控件的垂直最小大小更改为大于其当前大小,则控制该控件在垂直轴上的增长方向,因为控件必须始终至少为最小大小。

违约

设定器

设置工具提示(值)

更改工具提示文本。当用户的鼠标光标在该控件上停留几分钟后,将显示工具提示,前提是 mouse_filter 属性不是 MOUSE_FILTER_IGNORE .

违约

0.0

设定器

设置边距(值)

吸气剂

获取_Margin()

节点下边缘与其父控件之间的距离,基于 anchor_bottom .

页边距通常由一个或多个父级控制 Container 节点,因此如果您的节点是 Container . 移动或调整节点大小时,页边距自动更新。

违约

0.0

设定器

设置边距(值)

吸气剂

获取_Margin()

节点左边缘与其父控件之间的距离,基于 anchor_left .

页边距通常由一个或多个父级控制 Container 节点,因此如果您的节点是 Container . 移动或调整节点大小时,页边距自动更新。

违约

0.0

设定器

设置边距(值)

吸气剂

获取_Margin()

节点右边缘与其父控件之间的距离,基于 anchor_right .

页边距通常由一个或多个父级控制 Container 节点,因此如果您的节点是 Container . 移动或调整节点大小时,页边距自动更新。

违约

0.0

设定器

设置边距(值)

吸气剂

获取_Margin()

节点上边缘与其父控件之间的距离,基于 anchor_top .

页边距通常由一个或多个父级控制 Container 节点,因此如果您的节点是 Container . 移动或调整节点大小时,页边距自动更新。

违约

0

设定器

设置默认光标形状(值)

吸气剂

获取u默认u光标u形状()

此控件的默认光标形状。对于使用系统鼠标光标的godot插件和应用程序或游戏很有用。

注: 在Linux上,形状可能因系统的光标主题而异。

违约

0

设定器

设置鼠标过滤器(值)

吸气剂

获取鼠标筛选器()

控制控件是否能够通过 _gui_input 以及如何处理这些事件。还控制控件是否可以接收 mouse_enteredmouse_exited 信号。查看常量以了解每个常量的作用。

  • bool rect_clip_content

违约

设定器

设置剪辑内容(值)

吸气剂

正在剪切内容()。

启用是否应将子级的呈现剪辑到此控件的矩形。如果 true ,将不会呈现子级的部分,这些子级将明显地位于该控件的矩形之外。

吸气剂

获取全局位置()

节点相对于世界的全局位置(通常位于窗口的左上角)。

违约

矢量2(0,0)

设定器

设置自定义最小大小(值)

吸气剂

获取自定义最小大小()

节点边界矩形的最小大小。如果将其设置为大于(0,0)的值,则节点的边界矩形将始终至少具有此大小,即使其内容较小。如果设置为(0,0),则节点将自动调整大小以适应其内容,无论是纹理还是子节点。

违约

矢量2(0,0)

设定器

设置轴偏移(值)

吸气剂

获取轴偏移量()

默认情况下,节点的轴是其左上角。当你改变它 rect_scale ,它将围绕这个轴缩放。将此属性设置为 rect_size /2使轴在节点矩形中居中。

违约

矢量2(0,0)

吸气剂

获取位置()

节点相对于其父节点的位置。它对应于矩形的左上角。财产不受 rect_pivot_offset .

违约

0.0

设定器

设置旋转度(值)

吸气剂

得到旋转度

节点围绕其轴的旋转(度)。见 rect_pivot_offset 更改轴的位置。

违约

矢量2(1,1)

设定器

设置刻度(值)

吸气剂

获取_scale()

节点的比例,相对于其 rect_size . 更改此属性以围绕其缩放节点 rect_pivot_offset .

违约

矢量2(0,0)

吸气剂

获取u大小()

节点的边界矩形的大小(以像素为单位)。 Container 节点自动更新此属性。

  • int size_flags_horizontal

违约

1

设定器

设置“大小”标志(值)

吸气剂

获取大小标志()。

告诉家长 Container 节点如何调整节点的大小并将其放置在X轴上。使用其中一个 SIZE_* 用于更改标志的常量。查看常量以了解每个常量的作用。

  • float size_flags_stretch_ratio

违约

1.0

设定器

设置拉伸比(值)

吸气剂

获取拉伸比率()。

如果节点及其至少一个邻居使用 SIZE_EXPAND 大小标志,父级 Container 会让它占用多少空间取决于此属性。如果此节点的拉伸比为2,其邻居的拉伸比为1,则此节点将占用可用空间的三分之二。

  • int size_flags_vertical

违约

1

设定器

设置“大小”标志(值)

吸气剂

获取“大小”标志()。

告诉家长 Container 节点如何调整节点的大小并将其放置在Y轴上。使用其中一个 SIZE_* 用于更改标志的常量。查看常量以了解每个常量的作用。

设定器

设置主题(值)

吸气剂

获取主题()

更改此属性将替换当前 Theme 资源此节点及其所有 Control 儿童使用。

方法说明

  • bool _clips_input ( ) virtual

  • Vector2 _get_minimum_size ( ) virtual

返回此控件的最小大小。见 rect_min_size .

使用此方法处理和接受UI元素的输入。见 accept_event .

取代Godot 2 _input_event .

  • void accept_event ( )

将输入事件标记为已处理。一旦接受输入事件,它就停止传播,甚至停止传播到正在侦听的节点 Node._unhandled_inputNode._unhandled_key_input .

覆盖中的颜色 theme 节点使用的资源。

  • void add_constant_override ( String name, int constant )

重写中的整数常量 theme 节点使用的资源。如果 constant 无效,godot清除覆盖。

  • void add_font_override ( String name, Font font )

重写 name 中的字体 theme 节点使用的资源。如果 font 是空的,godot清除覆盖。

重写 name 图标在 theme 节点使用的资源。如果 icon 是空的,godot清除覆盖。

重写 name 中的明暗器 theme 节点使用的资源。如果 shader 是空的,godot清除覆盖。

重写 name StyleBoxtheme 节点使用的资源。如果 stylebox 是空的,godot清除覆盖。

Godot调用此方法来测试 data 来自控件的 get_drag_data 可以在 position . position 是此控件的本地控件。

此方法只能用于测试数据。处理数据 drop_data .

extends Control

func can_drop_data(position, data):
    # Check position if it is relevant to you
    # Otherwise, just check data
    return typeof(data) == TYPE_DICTIONARY and data.has("expected")

Godot调用此方法将 data 来自控件的 get_drag_data 结果。Godot第一个电话 can_drop_data 测试如果 data 允许降落在 position 在哪里? position 是此控件的本地控件。

extends ColorRect

func can_drop_data(position, data):
    return typeof(data) == TYPE_DICTIONARY and data.has("color")

func drop_data(position, data):
    color = data["color"]

强制阻力和旁路 get_drag_dataset_drag_preview 旁路 datapreview . 即使鼠标未悬停或未按下此控件,也将开始拖动。

方法 can_drop_datadrop_data 必须在希望接收放置数据的控件上实现。

返回 margin_leftmargin_top . 也见 rect_position .

  • Vector2 get_combined_minimum_size ( ) const

返回鼠标悬停时控件显示的鼠标光标形状。见 CursorShape .

Godot调用此方法以获取可以拖动并放到期望放置数据的控件上的数据。退换商品 null 如果没有要拖动的数据。希望接收放置数据的控件应实现 can_drop_datadrop_data . position 是此控件的本地控件。可以用 force_drag .

在鼠标后面显示数据的预览可以用 set_drag_preview . 设置预览的好时机在这个方法中。

extends Control

func get_drag_data(position):
    var mydata = make_data()
    set_drag_preview(make_preview(mydata))
    return mydata

返回 margin_rightmargin_bottom .

  • Control get_focus_owner ( ) const

返回具有键盘焦点的控件或 null 如果没有。

  • Rect2 get_global_rect ( ) const

返回控件相对于屏幕左上角的位置和大小。见 rect_positionrect_size .

  • Vector2 get_minimum_size ( ) const

返回此控件的最小大小。见 rect_min_size .

  • Vector2 get_parent_area_size ( ) const

返回父控件中占用的宽度/高度。

  • Control get_parent_control ( ) const

返回父控件节点。

  • Rect2 get_rect ( ) const

返回控件相对于父控件左上角的位置和大小。见 rect_positionrect_size .

  • float get_rotation ( ) const

返回旋转(以弧度表示)。

  • String get_tooltip ( Vector2 at_position=Vector2( 0, 0 ) ) const

返回当光标停留在此控件上时将显示的工具提示。

  • void grab_click_focus ( )

  • void grab_focus ( )

从另一个控件窃取焦点并成为焦点控件(请参见 focus_mode

  • bool has_constant_override ( String name ) const

  • bool has_focus ( ) const

返回 true 如果这是当前的焦点控件。见 focus_mode .

  • bool has_stylebox_override ( String name ) const

  • void minimum_size_changed ( )

  • void release_focus ( )

放弃焦点。没有其他控件能够接收键盘输入。

  • void set_anchor ( Margin margin, float anchor, bool keep_margin=false, bool push_opposite_anchor=true )

  • void set_anchor_and_margin ( Margin margin, float anchor, float offset, bool push_opposite_anchor=false )

  • void set_begin ( Vector2 position )

集合 margin_leftmargin_top 同时。

  • void set_drag_forwarding ( Control target )

将此控件的拖放操作转发到 target 控制。

转发可以在目标控件中实现,类似于方法 get_drag_datacan_drop_datadrop_data 但有两个不同之处:

  1. 函数名的后缀必须为 _fw

  2. 函数必须接受一个额外的参数,该参数是执行转发的控件

# ThisControl.gd
extends Control
func _ready():
    set_drag_forwarding(target_control)

# TargetControl.gd
extends Control
func can_drop_data_fw(position, data, from_control):
    return true

func drop_data_fw(position, data, from_control):
    my_handle_data(data)

func get_drag_data_fw(position, from_control):
    set_drag_preview(my_preview)
    return my_data()
  • void set_drag_preview ( Control control )

在鼠标指针处显示给定的控件。调用此方法的好时机已到 get_drag_data .

  • void set_end ( Vector2 position )

集合 margin_rightmargin_bottom 同时。

  • void set_global_position ( Vector2 position, bool keep_margins=false )

  • void set_position ( Vector2 position, bool keep_margins=false )

  • void set_rotation ( float radians )

设置旋转(以弧度为单位)。

  • void set_size ( Vector2 size, bool keep_margins=false )

  • void show_modal ( bool exclusive=false )

将控件显示为模式。控件必须是子窗口。模态控制捕捉输入信号,直到关闭或进入其外部区域。当模式控件失去焦点或按下Esc键时,它们会自动隐藏。模式控件广泛用于弹出对话框和菜单。

  • void warp_mouse ( Vector2 to_position )