Control

Успадковує: CanvasItem < Node < Object

Успадковано від: BaseButton, ColorRect, Container, GraphEdit, ItemList, Label, LineEdit, MenuBar, NinePatchRect, Panel, Range, ReferenceRect, RichTextLabel, Separator, TabBar, TextEdit, TextureRect, Tree, VideoStreamPlayer

Базовий клас для всіх елементів керування GUI. Адаптація його положення та розміру на основі його батьківського контролю.

Опис

Базовий клас для всіх пов’язаних з інтерфейсом користувача вузлів. Control містить обмежувальний прямокутник, який визначає його межі, позицію прив’язки відносно батьківського елемента керування або поточного вікна перегляду та зміщення відносно прив’язки. Зсуви оновлюються автоматично, коли вузол, будь-який із його батьків або розмір екрана змінюються.

Для отримання додаткової інформації про систему інтерфейсу користувача Godot, прив’язки, зсуви та контейнери див. відповідні навчальні посібники в посібнику. Щоб створити гнучкі інтерфейси користувача, вам знадобиться поєднання елементів інтерфейсу, які успадковуються від вузлів Control і Container.

Примітка: Оскільки Node2D і Control успадковують CanvasItem, вони мають спільні концепції з класу, наприклад властивості CanvasItem.z_index і CanvasItem.visible.

Вузли інтерфейсу користувача та введення

Godot поширює події введення через вікна перегляду. Кожен Viewport відповідає за розповсюдження InputEvents до своїх дочірніх вузлів. Оскільки SceneTree.root є вікном, це вже відбувається автоматично для всіх елементів інтерфейсу користувача у вашій грі.

Події введення поширюються через SceneTree від кореневого вузла до всіх дочірніх вузлів шляхом виклику Node._input(). Зокрема, для елементів інтерфейсу користувача має більше сенсу перевизначити віртуальний метод _gui_input(), який відфільтровує непов’язані події введення, наприклад, перевіряючи z-порядок, mouse_filter, фокус або якщо подія була всередині обмежувальної рамки елемента керування.

Викличте accept_event(), щоб жоден інший вузол не отримав подію. Коли ви приймаєте введення, воно стає обробленим, тому Node._unhandled_input() не оброблятиме його.

У фокусі може бути лише один вузол Control. Лише вузол у фокусі отримуватиме події. Щоб отримати фокус, викличте grab_focus(). Вузли Керування втрачають фокус, коли інший вузол захоплює їх або якщо ви ховаєте вузол у фокусі.

Встановлює mouse_filter на MOUSE_FILTER_IGNORE, щоб сказати вузлу Control ігнорувати події миші або торкання. Він вам знадобиться, якщо ви розмістите піктограму на кнопці.

Ресурси Theme змінюють зовнішній вигляд елемента керування. theme вузла Control впливає на всіх його прямих і непрямих дочірніх елементів (поки ланцюжок елементів керування не переривається). Щоб перевизначити деякі з елементів теми, викличте один із методів add_theme_*_override, як-от add_theme_font_override(). Ви також можете перевизначати елементи теми в Інспекторі.

Примітка: Елементи теми не є властивостями Object. Це означає, що ви не можете отримати доступ до їхніх значень за допомогою Object.get() і Object.set(). Замість цього використовуйте методи get_theme_* і add_theme_*_override, надані цим класом.

Посібники

Властивості

Array[NodePath]

accessibility_controls_nodes

[]

Array[NodePath]

accessibility_described_by_nodes

[]

String

accessibility_description

""

Array[NodePath]

accessibility_flow_to_nodes

[]

Array[NodePath]

accessibility_labeled_by_nodes

[]

AccessibilityLiveMode

accessibility_live

0

String

accessibility_name

""

float

anchor_bottom

0.0

float

anchor_left

0.0

float

anchor_right

0.0

float

anchor_top

0.0

bool

auto_translate

bool

clip_contents

false

Vector2

custom_minimum_size

Vector2(0, 0)

FocusBehaviorRecursive

focus_behavior_recursive

0

FocusMode

focus_mode

0

NodePath

focus_neighbor_bottom

NodePath("")

NodePath

focus_neighbor_left

NodePath("")

NodePath

focus_neighbor_right

NodePath("")

NodePath

focus_neighbor_top

NodePath("")

NodePath

focus_next

NodePath("")

NodePath

focus_previous

NodePath("")

Vector2

global_position

GrowDirection

grow_horizontal

1

GrowDirection

grow_vertical

1

LayoutDirection

layout_direction

0

bool

localize_numeral_system

true

MouseBehaviorRecursive

mouse_behavior_recursive

0

CursorShape

mouse_default_cursor_shape

0

MouseFilter

mouse_filter

0

bool

mouse_force_pass_scroll_events

true

float

offset_bottom

0.0

float

offset_left

0.0

float

offset_right

0.0

float

offset_top

0.0

PhysicsInterpolationMode

physics_interpolation_mode

2 (overrides Node)

Vector2

pivot_offset

Vector2(0, 0)

Vector2

position

Vector2(0, 0)

float

rotation

0.0

float

rotation_degrees

Vector2

scale

Vector2(1, 1)

Node

shortcut_context

Vector2

size

Vector2(0, 0)

BitField[SizeFlags]

size_flags_horizontal

1

float

size_flags_stretch_ratio

1.0

BitField[SizeFlags]

size_flags_vertical

1

Theme

theme

StringName

theme_type_variation

&""

AutoTranslateMode

tooltip_auto_translate_mode

0

String

tooltip_text

""

Методи

String

_accessibility_get_contextual_info() virtual const

bool

_can_drop_data(at_position: Vector2, data: Variant) virtual const

void

_drop_data(at_position: Vector2, data: Variant) virtual

String

_get_accessibility_container_name(node: Node) virtual const

Variant

_get_drag_data(at_position: Vector2) virtual

Vector2

_get_minimum_size() virtual const

String

_get_tooltip(at_position: Vector2) virtual const

void

_gui_input(event: InputEvent) virtual

bool

_has_point(point: Vector2) virtual const

Object

_make_custom_tooltip(for_text: String) virtual const

Array[Vector3i]

_structured_text_parser(args: Array, text: String) virtual const

void

accept_event()

void

accessibility_drag()

void

accessibility_drop()

void

add_theme_color_override(name: StringName, color: Color)

void

add_theme_constant_override(name: StringName, constant: int)

void

add_theme_font_override(name: StringName, font: Font)

void

add_theme_font_size_override(name: StringName, font_size: int)

void

add_theme_icon_override(name: StringName, texture: Texture2D)

void

add_theme_stylebox_override(name: StringName, stylebox: StyleBox)

void

begin_bulk_theme_override()

void

end_bulk_theme_override()

Control

find_next_valid_focus() const

Control

find_prev_valid_focus() const

Control

find_valid_focus_neighbor(side: Side) const

void

force_drag(data: Variant, preview: Control)

float

get_anchor(side: Side) const

Vector2

get_begin() const

Vector2

get_combined_minimum_size() const

CursorShape

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

Vector2

get_end() const

FocusMode

get_focus_mode_with_override() const

NodePath

get_focus_neighbor(side: Side) const

Rect2

get_global_rect() const

Vector2

get_minimum_size() const

MouseFilter

get_mouse_filter_with_override() const

float

get_offset(offset: Side) const

Vector2

get_parent_area_size() const

Control

get_parent_control() const

Rect2

get_rect() const

Vector2

get_screen_position() const

Color

get_theme_color(name: StringName, theme_type: StringName = &"") const

int

get_theme_constant(name: StringName, theme_type: StringName = &"") const

float

get_theme_default_base_scale() const

Font

get_theme_default_font() const

int

get_theme_default_font_size() const

Font

get_theme_font(name: StringName, theme_type: StringName = &"") const

int

get_theme_font_size(name: StringName, theme_type: StringName = &"") const

Texture2D

get_theme_icon(name: StringName, theme_type: StringName = &"") const

StyleBox

get_theme_stylebox(name: StringName, theme_type: StringName = &"") const

String

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

void

grab_click_focus()

void

grab_focus()

bool

has_focus() const

bool

has_theme_color(name: StringName, theme_type: StringName = &"") const

bool

has_theme_color_override(name: StringName) const

bool

has_theme_constant(name: StringName, theme_type: StringName = &"") const

bool

has_theme_constant_override(name: StringName) const

bool

has_theme_font(name: StringName, theme_type: StringName = &"") const

bool

has_theme_font_override(name: StringName) const

bool

has_theme_font_size(name: StringName, theme_type: StringName = &"") const

bool

has_theme_font_size_override(name: StringName) const

bool

has_theme_icon(name: StringName, theme_type: StringName = &"") const

bool

has_theme_icon_override(name: StringName) const

bool

has_theme_stylebox(name: StringName, theme_type: StringName = &"") const

bool

has_theme_stylebox_override(name: StringName) const

bool

is_drag_successful() const

bool

is_layout_rtl() const

void

release_focus()

void

remove_theme_color_override(name: StringName)

void

remove_theme_constant_override(name: StringName)

void

remove_theme_font_override(name: StringName)

void

remove_theme_font_size_override(name: StringName)

void

remove_theme_icon_override(name: StringName)

void

remove_theme_stylebox_override(name: StringName)

void

reset_size()

void

set_anchor(side: Side, anchor: float, keep_offset: bool = false, push_opposite_anchor: bool = true)

void

set_anchor_and_offset(side: Side, anchor: float, offset: float, push_opposite_anchor: bool = false)

void

set_anchors_and_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0)

void

set_anchors_preset(preset: LayoutPreset, keep_offsets: bool = false)

void

set_begin(position: Vector2)

void

set_drag_forwarding(drag_func: Callable, can_drop_func: Callable, drop_func: Callable)

void

set_drag_preview(control: Control)

void

set_end(position: Vector2)

void

set_focus_neighbor(side: Side, neighbor: NodePath)

void

set_global_position(position: Vector2, keep_offsets: bool = false)

void

set_offset(side: Side, offset: float)

void

set_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0)

void

set_position(position: Vector2, keep_offsets: bool = false)

void

set_size(size: Vector2, keep_offsets: bool = false)

void

update_minimum_size()

void

warp_mouse(position: Vector2)


Сигнали

focus_entered() 🔗

Увімкніть, коли вузол отримує фокус.


focus_exited() 🔗

Увімкніть, коли вузол втрачає фокус.


gui_input(event: InputEvent) 🔗

Увімкнути, коли вершина отримує InputEvent.


minimum_size_changed() 🔗

Випробувано при мінімальних змінах розміру вузла.


mouse_entered() 🔗

Після того, як курсор мишки надходить в видиму зону контролю (або будь-який контроль дитини), яка не входить до інших Controls або Windows, надавалася його mouse_filter дозволяє досягнути події і незалежно від того, чи зараз він зосередився або ні.

Note: CanvasItem.z_index не впливає, що контроль отримує сигнал.


mouse_exited() 🔗

Якщо курсор миша залишає за собою видиму зону контролю (і всі функції контролю дитини), яка не входить до інших контрольних пристроїв або Windows, надавалася його mouse_filter дозволяє досягнути події і незалежно від того, чи зараз вона зосереджена або ні.

Примітка: CanvasItem.z_index не впливає, що контроль отримує сигнал.

Примітка: Якщо ви хочете перевірити, чи дійсно миша залишила область, ігноруючи будь-які вершини вершини, ви можете використовувати код, як це:

func _on_mouse_exited():
if no Rect2(Vector2(), size).has_point(get_local_mouse_position()):
# Не захоплюючись над зоною.

resized() 🔗

Увімкніть, коли розмір керування змінюється.


size_flags_changed() 🔗

Викликається, коли змінюється один із прапорців розміру. Див. size_flags_horizontal та size_flags_vertical.


theme_changed() 🔗

Увімкнено, коли надсилається повідомлення про невідповідність NOTIFICATION_THEME_CHANGED.


Переліки

enum FocusMode: 🔗

FocusMode FOCUS_NONE = 0

Вузол не може отримати фокус. Використовуйте з focus_mode.

FocusMode FOCUS_CLICK = 1

Вузол може отримувати фокус лише за допомогою клацання миші. Використовуйте з focus_mode.

FocusMode FOCUS_ALL = 2

Вузол може перемикатися на фокус клацанням миші, за допомогою стрілок та клавіш Tab на клавіатурі або за допомогою кнопок D-pad на геймпаді. Використовуйте з focus_mode.

FocusMode FOCUS_ACCESSIBILITY = 3

Вузол може отримати фокус лише тоді, коли активна програма зчитування з екрана. Використовуйте з focus_mode.


enum FocusBehaviorRecursive: 🔗

FocusBehaviorRecursive FOCUS_BEHAVIOR_INHERITED = 0

Успадковує focus_behavior_recursive від батьківського елемента керування. Якщо батьківського елемента керування немає, це те саме, що й FOCUS_BEHAVIOR_ENABLED.

FocusBehaviorRecursive FOCUS_BEHAVIOR_DISABLED = 1

Запобігає фокусуванню елемента керування. get_focus_mode_with_override() поверне FOCUS_NONE.

FocusBehaviorRecursive FOCUS_BEHAVIOR_ENABLED = 2

Дозволяє фокусуватися на елементі керування залежно від focus_mode. Це можна використовувати для ігнорування батьківського focus_behavior_recursive. Метод get_focus_mode_with_override() поверне focus_mode.


enum MouseBehaviorRecursive: 🔗

MouseBehaviorRecursive MOUSE_BEHAVIOR_INHERITED = 0

Успадковує mouse_behavior_recursive від батьківського елемента керування. Якщо батьківського елемента керування немає, це те саме, що й MOUSE_BEHAVIOR_ENABLED.

MouseBehaviorRecursive MOUSE_BEHAVIOR_DISABLED = 1

Запобігає отриманню елементом керування введення даних миші. get_mouse_filter_with_override() поверне MOUSE_FILTER_IGNORE.

MouseBehaviorRecursive MOUSE_BEHAVIOR_ENABLED = 2

Дозволяє елементу керування отримувати введення миші, залежно від mouse_filter. Це можна використовувати для ігнорування батьківського mouse_behavior_recursive. Метод get_mouse_filter_with_override() поверне mouse_filter.


enum CursorShape: 🔗

CursorShape CURSOR_ARROW = 0

Показувати системний курсор миші у формі стрілки, коли користувач наводить курсор на вузол. Використовувати з mouse_default_cursor_shape.

CursorShape CURSOR_IBEAM = 1

Показати курсор I-beam мишки, коли користувач вішає вузол. І-бемовий тостер має форму схожу на "І". Він розповідає про користувача, які вони можуть виділити або вставляти текст.

CursorShape CURSOR_POINTING_HAND = 2

Покажіть курсор ручної миші системи, коли користувач захопить вузол.

CursorShape CURSOR_CROSS = 3

Покажіть курсор крос-мишки системи, коли користувач захопить вузол.

CursorShape CURSOR_WAIT = 4

Покажіть курсор системи, коли користувач захопить вузол. Нерідко часовий скло.

CursorShape CURSOR_BUSY = 5

Покажіть курсор системної миші, коли користувач захопить вузол. Нерідко стрілка з невеликим годинниковим склом.

CursorShape CURSOR_DRAG = 6

Покажіть курсор системи перетягування миші, часто закритий фіст або хрестовий символ, коли користувач вішує вузол. Вона розповідає про користувача, який зараз перетягування елемента, як вершина в додатку сцени.

CursorShape CURSOR_CAN_DROP = 7

Покажіть курсор скидання системи, коли користувач захопить вузол. Він може бути відкритою рукою. Вона розповідає про користувача, який вони можуть опустити елемент, який в даний час захоплюється, як вузол в додатку сцени.

CursorShape CURSOR_FORBIDDEN = 8

Покажіть курсор системи, коли користувач захопить вузол. Нерідко перехрещене коло.

CursorShape CURSOR_VSIZE = 9

Показати вертикальний курсора змінного розміру системи, коли користувач захопить вузол. Двоголова вертикальна стрілка. Розповідає користувачу можливість змінити вікно або панель вертикально.

CursorShape CURSOR_HSIZE = 10

Показати курсор горизонтального розміру системи, коли користувач захопить вузол. Двоголова горизонтальна стрілка. Розповідає користувачу можливість змінити вікно або панель горизонтально.

CursorShape CURSOR_BDIAGSIZE = 11

Покажіть курсор вікна змінного розміру системи, коли користувач захопить вузол. Екскурсор - двоголова стрілка, яка йде знизу зліва на верхню праву. Розповідає користувачу можливість змінити вікно або панель як горизонтально, так і вертикально.

CursorShape CURSOR_FDIAGSIZE = 12

Покажіть курсор вікна змінного розміру системи, коли користувач захопить вузол. Екскурсор - двоголова стрілка, яка йде з верхньої частини, зліва на низ, протилежна CURSOR_BDIAGSIZE. Розповідає користувачу можливість змінити вікно або панель як горизонтально, так і вертикально.

CursorShape CURSOR_MOVE = 13

Показати курсор мишки системи, коли користувач захопить вузол. На 90-градусний кут показує 2 двоголових стрілок. Він говорить користувача, що він може вільно переміщати елемент UI.

CursorShape CURSOR_VSPLIT = 14

Показати вертикальний розгалужувач системи, коли користувач захопить вузол. На Windows, це так само, як CURSOR_VSIZE.

CursorShape CURSOR_HSPLIT = 15

Показати курсор горизонтального спліту системи, коли користувач захопить вузол. На Windows, це те ж саме, як CURSOR_HSIZE.

CursorShape CURSOR_HELP = 16

Покажіть курсор системи, коли користувач захопить вузол, позначку питання.


enum LayoutPreset: 🔗

LayoutPreset PRESET_TOP_LEFT = 0

Зніміть всі 4 анкери до верхньої частини кордону батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_TOP_RIGHT = 1

Зніміть всі 4 анкери до верхнього права меж батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_BOTTOM_LEFT = 2

Зніміть всі 4 анкери до нижньої сторони кордону батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_BOTTOM_RIGHT = 3

Зніміть всі 4 анкери до нижньої сторони кордону батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_CENTER_LEFT = 4

Зніміть всі 4 анкери до центру лівого краю кордону батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_CENTER_TOP = 5

Зніміть всі 4 анкери до центру верхнього краю меж батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_CENTER_RIGHT = 6

Зніміть всі 4 анкери до центру правого краю кордону батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_CENTER_BOTTOM = 7

Зніміть всі 4 анкери до центру нижнього краю меж батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_CENTER = 8

Зніміть всі 4 анкери до центру меж батьківського контролю. Використання set_anchors_preset().

LayoutPreset PRESET_LEFT_WIDE = 9

Зніміть всі 4 анкери до лівого краю батьківського контролю. Лівий офсет стає відносно лівого краю і верхнього зміщення відносно верхнього лівого кута вершини. Використання set_anchors_preset().

LayoutPreset PRESET_TOP_WIDE = 10

Зніміть всі 4 анкери до верхнього краю батьківського контролю. Лівий зсув стає відносно верхнього лівого кута, верхнього зсуву відносно верхнього краю, а правий зсув відносно верхнього правого кута вершини. Використання set_anchors_preset().

LayoutPreset PRESET_RIGHT_WIDE = 11

Зніміть всі 4 анкери до правого краю батьківського контролю. Правою офсетом стає відносно правого краю і верхнього офсету відносно верхнього правого кута материнської вершини. Використання set_anchors_preset().

LayoutPreset PRESET_BOTTOM_WIDE = 12

Зніміть всі 4 анкери до нижнього краю батьківського контролю. Лівий офсет стає відносно нижнього лівого кута, нижній зсув відносно нижнього краю, а правий зсув відносно нижнього правого кута вершини. Використання set_anchors_preset().

LayoutPreset PRESET_VCENTER_WIDE = 13

Зніміть всі 4 анкери до вертикальної лінії, яка вирізає контроль батьків навпіл. Використання set_anchors_preset().

LayoutPreset PRESET_HCENTER_WIDE = 14

Зніміть всі 4 анкери на горизонтальну лінію, яка вирізає контроль батьків навпіл. Використання set_anchors_preset().

LayoutPreset PRESET_FULL_RECT = 15

Зніміть всі 4 анкери до відповідних куточків батьківського контролю. Налаштуйте всі 4 офсети до 0 після того, як ви наносите цей пресет і Control підійде до свого батьківського контролю. Використання set_anchors_preset().


enum LayoutPresetMode: 🔗

LayoutPresetMode PRESET_MODE_MINSIZE = 0

Контроль буде негабаритним до мінімального розміру.

LayoutPresetMode PRESET_MODE_KEEP_WIDTH = 1

Ширина управління не змінить.

LayoutPresetMode PRESET_MODE_KEEP_HEIGHT = 2

Висота управління не змінить.

LayoutPresetMode PRESET_MODE_KEEP_SIZE = 3

Розмір управління не змінить.


flags SizeFlags: 🔗

SizeFlags SIZE_SHRINK_BEGIN = 0

Повідомляє батьківщину Container, щоб вирівняти вузол з його початком, або верхнім або лівим краєм. Це взаємовиключно з SIZE_FILL та іншими прапорами розмірів, але можна використовувати з SIZE_EXPAND в деяких контейнерах. Використовуйте size_flags_horizontal і size_flags_vertical.

Note: Налаштування цього прапора дорівнює не маючи ніяких прапорів розмірів.

SizeFlags SIZE_FILL = 1

Вказує батьківському Container розширити межі цього вузла, щоб заповнити весь доступний простір, не виштовхуючи інші вузли. Він є взаємовиключним з прапорами зменшення розміру. Використовуйте з size_flags_horizontal та size_flags_vertical.

SizeFlags SIZE_EXPAND = 2

Дозволяє батьківському Container дозволити цьому вузлу зайняти весь доступний простір на осі, яку ви позначили. Якщо декілька сусідніх вузлів налаштовано на розширення, вони розділять простір на основі їхнього коефіцієнта розтягування. Дивіться size_flags_stretch_ratio. Використовуйте з size_flags_horizontal та size_flags_vertical.

SizeFlags SIZE_EXPAND_FILL = 3

Налаштовує прапори розміру вузла, щоб як заповнити, так і розширити. Див. SIZE_FILL і SIZE_EXPAND для отримання додаткової інформації.

SizeFlags SIZE_SHRINK_CENTER = 4

Повідомляє батьківщину Контейнер до центру вершини в доступному просторі. Це взаємовиключно з SIZE_FILL та іншими прапорами розмірів, але можна використовувати з SIZE_EXPAND в деяких контейнерах. Використовуйте з size_flags_horizontal та size_flags_vertical.

SizeFlags SIZE_SHRINK_END = 8

Вказує батьківському Container вирівняти вузол за його кінцем, або за нижнім, або за правим краєм. Він є взаємовиключним з SIZE_FILL та іншими прапорами стискання, але може використовуватися з SIZE_EXPAND у деяких контейнерах. Використовуйте з size_flags_horizontal та size_flags_vertical.


enum MouseFilter: 🔗

MouseFilter MOUSE_FILTER_STOP = 0

Елемент управління отримуватиме події введення руху миші та події введення кнопки миші при натисканні через _gui_input(). Елемент управління також отримуватиме сигнали mouse_entered та mouse_exited. Ці події автоматично позначаються як оброблені, і вони не поширюватимуться далі на інші елементи керування. Це також призводить до блокування сигналів в інших елементах управління.

MouseFilter MOUSE_FILTER_PASS = 1

Елемент управління отримуватиме події введення руху миші та події введення кнопки миші при натисканні через _gui_input(). Елемент управління також отримуватиме сигнали mouse_entered та mouse_exited.

Якщо цей елемент управління не обробляє подію, вона поширюється до батьківського елемента управління, якщо такий є. Подія піднімається вгору по ієрархії вузлів, доки не досягне елемента, який не є CanvasItem, елемента з MOUSE_FILTER_STOP або CanvasItem з увімкненим CanvasItem.top_level. Це дозволить сигналам спрацьовувати у всіх елементах керування, до яких вони потрапляють. Якщо жоден елемент управління не обробив цю подію, її буде передано до Node._shortcut_input() для подальшої обробки).

MouseFilter MOUSE_FILTER_IGNORE = 2

Елемент керування не отримуватиме жодних подій введення руху миші або натискання кнопки миші через _gui_input(). Елемент керування також не отримуватиме сигналів mouse_entered та mouse_exited. Це не заблокує інші елементи керування отримувати ці події або спрацьовувати ці сигнали. Ігноровані події не оброблятимуться автоматично. Якщо дочірній елемент має MOUSE_FILTER_PASS і йому було передано подію, вона пошириться аж до батьківського елемента.

Примітка: Якщо елемент керування отримав mouse_entered, але не отримав mouse_exited, зміна значення mouse_filter на MOUSE_FILTER_IGNORE призведе до випромінювання mouse_exited.


enum GrowDirection: 🔗

GrowDirection GROW_DIRECTION_BEGIN = 0

Управління виросте до лівого або верхнього, щоб зробити, якщо його мінімальний розмір змінюється, щоб бути більшим, ніж його поточний розмір на відповідній осі.

GrowDirection GROW_DIRECTION_END = 1

Контроль буде рости на праву або дно, щоб зробити, якщо його мінімальний розмір змінюється, щоб бути більшим, ніж його поточний розмір на відповідній осі.

GrowDirection GROW_DIRECTION_BOTH = 2

Контроль буде рости в обох напрямках, як правило, щоб зробити, якщо його мінімальний розмір змінюється більш, ніж його поточний розмір.


enum Anchor: 🔗

Anchor ANCHOR_BEGIN = 0

Прив'язує одну з 4-х сторін якоря до початку Rect вузла, у верхньому лівому куті. Використовуйте його з однією зі змінних-членів anchor_*, наприклад, anchor_left. Щоб змінити всі 4 прив'язки одночасно, використовуйте set_anchors_preset().

Anchor ANCHOR_END = 1

Прив'язує одну з 4 сторін якоря до кінця Rect вузла, внизу праворуч. Використовуйте його з однією зі змінних-членів anchor_*, наприклад, anchor_left. Щоб змінити всі 4 прив'язки одночасно, використовуйте set_anchors_preset().


enum LayoutDirection: 🔗

LayoutDirection LAYOUT_DIRECTION_INHERITED = 0

Автоматичний напрямок макета, визначений з напрямку планування батьків.

LayoutDirection LAYOUT_DIRECTION_APPLICATION_LOCALE = 1

Автоматичний напрямок макета, визначений на основі поточної мови. Напрямок компонування справа наліво автоматично використовується для мов, які вимагають його, наприклад арабської та івриту, але лише якщо для даної мови завантажено дійсний файл перекладу (якщо зазначену мову не налаштовано як резервну в ProjectSettings.internationalization/locale/fallback). Для всіх інших мов (або якщо Godot не знайшов дійсний файл перекладу) використовується напрямок компонування зліва направо. Якщо використовується TextServerFallback (ProjectSettings.internationalization/rendering/text_driver), напрямок макета зліва направо завжди використовується незалежно від мови. Напрямок макета справа наліво також можна примусово встановити за допомогою ProjectSettings.internationalization/rendering/force_right_to_left_layout_direction.

LayoutDirection LAYOUT_DIRECTION_LTR = 2

Вліво-правовий напрямок макета.

LayoutDirection LAYOUT_DIRECTION_RTL = 3

Прямий напрямок макета.

LayoutDirection LAYOUT_DIRECTION_SYSTEM_LOCALE = 4

Автоматичний напрямок розміщення, що визначається на основі системних налаштувань. Напрямок розміщення справа наліво автоматично використовується для мов, які цього вимагають, таких як арабська та іврит, але тільки якщо для даної мови завантажено дійсний файл перекладу. Для всіх інших мов (або якщо Godot не знаходить дійсний файл перекладу) використовується напрямок розміщення зліва направо. Якщо використовується TextServerFallback (ProjectSettings.internationalization/rendering/text_driver), напрямок розміщення зліва направо завжди використовується незалежно від мови.

LayoutDirection LAYOUT_DIRECTION_MAX = 5

Представляє розмір переліку LayoutDirection.

LayoutDirection LAYOUT_DIRECTION_LOCALE = 1

Застаріло: Use LAYOUT_DIRECTION_APPLICATION_LOCALE instead.


enum TextDirection: 🔗

TextDirection TEXT_DIRECTION_INHERITED = 3

Текстовий напрямок написання є таким же, як напрямок планування.

TextDirection TEXT_DIRECTION_AUTO = 0

Автоматичний напрямок написання тексту, визначений з поточного локального та текстового вмісту.

TextDirection TEXT_DIRECTION_LTR = 1

Вліво-правий напрямок написання тексту.

TextDirection TEXT_DIRECTION_RTL = 2

Право-лівий напрямок написання тексту.


Константи

NOTIFICATION_RESIZED = 40 🔗

Надсилається, коли розмір вузла змінюється. Використовуйте size, щоб отримати новий розмір.

NOTIFICATION_MOUSE_ENTER = 41 🔗

У разі, коли курсор мишки надходить у видиму зону контролю (або будь-який контроль дитини), що не входить до інших контрольних пристроїв або Windows, наданий його mouse_filter дозволяє досягнути події і незалежно від того, чи зараз він зосередився або ні.

Примітка: CanvasItem.z_index не впливає на який контроль отримує повідомлення.

Дивитися також NOTIFICATION_MOUSE_ENTER_SELF.

NOTIFICATION_MOUSE_EXIT = 42 🔗

Якщо курсор мишей залишає за собою видиму площу контрольного контролю (і всіх контрольних) дитини, яка не входить до інших контрольних систем або Windows, надавалася його mouse_filter дозволяє досягнути події і незалежно від того, чи зараз вона зосереджена або ні.

Примітка: CanvasItem.z_index не впливає на який контроль отримує повідомлення.

Дивитися також NOTIFICATION_MOUSE_EXIT_SELF.

NOTIFICATION_MOUSE_ENTER_SELF = 60 🔗

Експериментальний: The reason this notification is sent may change in the future.

Якщо курсор мишки надходить на видиму площу, яка не входить до інших елементів керування або Windows, надавалася її mouse_filter дозволяє досягнути події і незалежно від того, чи вона зараз зосереджена або ні.

Примітка: CanvasItem.z_index не впливає на який контроль отримує повідомлення.

Дивитися також NOTIFICATION_MOUSE_ENTER.

NOTIFICATION_MOUSE_EXIT_SELF = 61 🔗

Експериментальний: The reason this notification is sent may change in the future.

Якщо курсор мишей залишає видиму площу, яка не входить до інших елементів керування або Windows, наданий її mouse_filter дозволяє досягнути події і незалежно від того, чи зараз він зосередився або ні.

Примітка: CanvasItem.z_index не впливає на який контроль отримує повідомлення.

Дивитися також NOTIFICATION_MOUSE_EXIT.

NOTIFICATION_FOCUS_ENTER = 43 🔗

Увімкніть, коли вузол захоплюється.

NOTIFICATION_FOCUS_EXIT = 44 🔗

Увімкніть, коли вузол втрачає фокус.

NOTIFICATION_THEME_CHANGED = 45 🔗

Увімкніть, коли вершина повинна освіжити її предметами. Це відбувається в одному з наступних випадків:

  • На цій вершині змінена тема theme.

  • На цій вершині змінено авторську тема_type_variation.

до Змінилося одне з темних об’єктів вершини.

до Вуз входить дерево сцени.

Примітка: Як оптимізація, це повідомлення не буде відправлено з змін, які відбуваються в той час як це вершина зовні сцени. Замість, всі оновлення теми можна застосувати відразу, коли вершина надходить на дерево сцени.

Примітка: Це повідомлення надійшло поряд з Node. НЕІФІКАЦІЯ_ENTER_TREE, тому якщо ви миттєво розмовляєте сцену, дочірні вузли ще не будуть ініціовані. Ви можете використовувати його, щоб налаштувати їх для цього вузла, дочірні вершини, створені з сценарію, або якщо ви хочете отримати доступ до дочірніх вузлів, доданих в редакторі, переконайтеся, що вузол готовий використовувати Node.is_node_ready().

func _notification(what):
if what == NOTIFICATION_THEME_CHANGED!
if no is_node_ready():
await ready # Очікується до готовності сигналу.
$Label.add_theme_color_override("font_color, Color.YELLOW)

NOTIFICATION_SCROLL_BEGIN = 47 🔗

При цьому, коли цей вузол знаходиться всередині ScrollContainer, який почав прокручуватися, коли перетягування прокрученої площі * з сенсорною подією . Це повідомлення *not надіслане при прокручуванні за допомогою прокрутки, прокручування за допомогою миші або прокручування за допомогою клавіатури / грипаду подій.

Примітка: Цей сигнал випромінюється лише на Android або iOS, або на настільних/веб-платформах, коли ввімкнено ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.

NOTIFICATION_SCROLL_END = 48 🔗

При цьому, коли цей вузол знаходиться всередині ScrollContainer, який припинив прокручування під час перетягування прокрученої зони * з сенсорною подією . Це повідомлення *not надіслане при прокручуванні за допомогою прокрутки, прокручування за допомогою миші або прокручування за допомогою клавіатури / грипаду подій.

Примітка: Цей сигнал використовується тільки на Android або iOS, або на настільних / веб-платформах, коли ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.

NOTIFICATION_LAYOUT_DIRECTION_CHANGED = 49 🔗

Надсилається, коли напрямок макета елементів керування змінюється з LTR або RTL або навпаки. Це сповіщення поширюється на дочірні вузли керування в результаті зміни в layout_direction.


Описи властивостей

Array[NodePath] accessibility_controls_nodes = [] 🔗

Шляхи до вузлів, якими керує цей вузол.


Array[NodePath] accessibility_described_by_nodes = [] 🔗

Шляхи до вузлів, що описують цей вузол.


String accessibility_description = "" 🔗

  • void set_accessibility_description(value: String)

  • String get_accessibility_description()

Опис вузла, який може читати людина, і який повідомляється допоміжним програмам.


Array[NodePath] accessibility_flow_to_nodes = [] 🔗

Шляхи до вузлів, у які впадає цей вузол.


Array[NodePath] accessibility_labeled_by_nodes = [] 🔗

Шляхи до вузлів, що позначають цей вузол.


AccessibilityLiveMode accessibility_live = 0 🔗

Режим оновлення активного регіону. Активний регіон – це Node, який оновлюється в результаті зовнішньої події, коли фокус користувача може бути в іншому місці.


String accessibility_name = "" 🔗

  • void set_accessibility_name(value: String)

  • String get_accessibility_name()

Зрозуміле для людини ім'я вузла, яке повідомляється допоміжним програмам.


float anchor_bottom = 0.0 🔗

Анколює нижній край вузла до походження, центр або кінець його батьківського контролю. Він змінює, як оновлення нижнього зсуву при переході вершини або розмір змін. Ви можете використовувати одну з констанцій Anchor для зручності.


float anchor_left = 0.0 🔗

Анколює лівий край вузла до походження, центр або кінець його батьківського контролю. Зміни, як лівий зсув оновлення, коли вершина рухається або розмір змін. Ви можете використовувати одну з констанцій Anchor для зручності.


float anchor_right = 0.0 🔗

Анкери правого краю вузла до походження, центру або закінчення його батьківського контролю. Він змінює, як правильно зміщувати оновлення, коли вузол рухається або змінює розмір. Ви можете використовувати одну з констанцій Anchor для зручності.


float anchor_top = 0.0 🔗

Анколює верхній край вершини до походження, центру або закінчення його батьківського контролю. Він змінює, як оновлення верхнього зсуву, коли вершина рухається або розмір змін. Ви можете використовувати одну з констанцій Anchor для зручності.


bool auto_translate 🔗

  • void set_auto_translate(value: bool)

  • bool is_auto_translating()

Застаріло: Use Node.auto_translate_mode and Node.can_auto_translate() instead.

Якщо будь-який текст повинен автоматично змінюватися до його перекладу в залежності від поточного локального.


bool clip_contents = false 🔗

  • void set_clip_contents(value: bool)

  • bool is_clipping_contents()

Увімкнено, чи має бути надана дитяча фігура CanvasItem. Якщо true, частини дитини, яка буде помітно зовні цього прямокутника, не буде продаватися і не буде отримувати вхід.


Vector2 custom_minimum_size = Vector2(0, 0) 🔗

  • void set_custom_minimum_size(value: Vector2)

  • Vector2 get_custom_minimum_size()

Мінімальний розмір прямокутника вузла. Якщо ви встановите його до значення більше, ніж (0, 0), то вузол, що межує прямокутник, завжди має принаймні цей розмір. Зверніть увагу, що Control вершини мають свій внутрішній мінімальний розмір, що подається get_minimum_size(). Він залежить від вмісту управління, таких як текст, текстури або ящики стилю. Максимальний розмір нерухомості – це максимальне значення цього майна та внутрішній мінімальний розмір (див. get_combined_minimum_size()).


FocusBehaviorRecursive focus_behavior_recursive = 0 🔗

Визначає, які елементи керування можуть бути сфокусовані разом з focus_mode. Див. get_focus_mode_with_override(). Оскільки поведінка за замовчуванням — FOCUS_BEHAVIOR_INHERITED, це можна використовувати для запобігання фокусуванню всіх дочірніх елементів керування.


FocusMode focus_mode = 0 🔗

Визначає, які елементи керування можуть бути сфокусовані. Одночасно може бути сфокусований лише один елемент керування, і сфокусований елемент керування отримуватиме події клавіатури, геймпада та миші в _gui_input(). Використовуйте get_focus_mode_with_override(), щоб визначити, чи елемент керування може отримати фокус, оскільки focus_behavior_recursive також впливає на нього. Див. також grab_focus().


NodePath focus_neighbor_bottom = NodePath("") 🔗

Вказує Godot, на який вузол слід перевести фокус, якщо користувач натискає стрілку вниз на клавіатурі або на геймпаді за замовчуванням. Ви можете змінити клавішу, відредагувавши дію введення ProjectSettings.input/ui_down. Вузол має бути Control. Якщо цю властивість не встановлено, Godot сфокусує увагу на найближчому до нього Control знизу.


NodePath focus_neighbor_left = NodePath("") 🔗

Вказує Godot, на який вузол слід перевести фокус, якщо користувач натискає стрілку вліво на клавіатурі або вліво на ґеймпаді за замовчуванням. Ви можете змінити клавішу, відредагувавши дію введення ProjectSettings.input/ui_left. Вузол має бути Control. Якщо цю властивість не встановлено, Godot сфокусує фокус на найближчому Control ліворуч від цього.


NodePath focus_neighbor_right = NodePath("") 🔗

Вказує Godot, на який вузол слід перевести фокус, якщо користувач натискає стрілку праворуч на клавіатурі або праворуч на ґеймпаді за замовчуванням. Ви можете змінити клавішу, відредагувавши дію введення ProjectSettings.input/ui_right. Вузол має бути Control. Якщо цю властивість не встановлено, Godot сфокусує увагу на найближчому елементі керування праворуч від нього.


NodePath focus_neighbor_top = NodePath("") 🔗

За замовчуванням вказує Godot, на який вузол слід перевести фокус, якщо користувач натискає стрілку вгору на клавіатурі або вгору на ґеймпаді. Ви можете змінити клавішу, відредагувавши дію введення ProjectSettings.input/ui_up. Вузол має бути Control. Якщо цю властивість не встановлено, Godot сфокусує увагу на найближчому до нього Control.


NodePath focus_next = NodePath("") 🔗

Вказує Godot, на який вузол слід перевести фокус, якщо користувач натисне Tab на клавіатурі за замовчуванням. Ви можете змінити клавішу, відредагувавши дію введення ProjectSettings.input/ui_focus_next.

Якщо цю властивість не встановлено, Godot вибере "найкраще припущення" на основі навколишніх вузлів у дереві сцени.


NodePath focus_previous = NodePath("") 🔗

Вказує Godot, до якого вузла слід перевести фокус, якщо користувач за замовчуванням натискає Shift + Tab на клавіатурі. Ви можете змінити клавішу, відредагувавши дію введення ProjectSettings.input/ui_focus_prev.

Якщо цю властивість не встановлено, Godot вибере "найкраще припущення" на основі навколишніх вузлів у дереві сцени.


Vector2 global_position 🔗

Всесвітня позиція вершини, відносно світу (зазвичай до CanvasLayer).


GrowDirection grow_horizontal = 1 🔗

Контролює напрямок на горизонтальну вісь, в якій контроль повинен рости, якщо його горизонтальний мінімальний розмір змінений, ніж його поточний розмір, так як контроль завжди повинен бути не менше мінімального розміру.


GrowDirection grow_vertical = 1 🔗

Контролює напрямок на вертикальну віссю, в якій контроль повинен рости, якщо його вертикальний мінімальний розмір змінюється, ніж його поточний розмір, так як контроль завжди повинен бути не менше мінімального розміру.


LayoutDirection layout_direction = 0 🔗

Контролює напрямок макета та напрямок написання тексту. Розкладка справа наліво необхідна для певних мов (наприклад, арабської та івриту). Дивіться також is_layout_rtl().


bool localize_numeral_system = true 🔗

  • void set_localize_numeral_system(value: bool)

  • bool is_localizing_numeral_system()

Якщо true, автоматично перетворює кодові рядки, список індексів, SpinBox та ProgressBar значення з Західної Арабської (0.9) до систем, що використовуються в поточному локальному режимі.

Note: Кількість в тексті не автоматично перетворюються, це можна зробити вручну, використовуючи ТекстServer.format_number().


MouseBehaviorRecursive mouse_behavior_recursive = 0 🔗

Визначає, які елементи керування можуть отримувати введення миші разом із mouse_filter. Див. get_mouse_filter_with_override(). Оскільки поведінка за замовчуванням — MOUSE_BEHAVIOR_INHERITED, це можна використовувати, щоб запобігти отриманню введення миші всіма дочірніми елементами керування.


CursorShape mouse_default_cursor_shape = 0 🔗

Форма курсора за замовчуванням для цього керування. Корисно для Godot плагінів і додатків або ігор, які використовують курсори мишки системи.

Примітка: На Linux форми можуть відрізнятися залежно від теми курсора системи.


MouseFilter mouse_filter = 0 🔗

Визначає, які елементи керування зможуть отримувати події введення даних від кнопки миші через _gui_input() та сигнали mouse_entered і mouse_exited. Також визначає, як ці події повинні поширюватися. Дивіться константи, щоб дізнатися, що робить кожна з них. Використовуйте get_mouse_filter_with_override(), щоб визначити, чи може елемент керування отримувати введення даних від миші, оскільки mouse_behavior_recursive також впливає на це.


bool mouse_force_pass_scroll_events = true 🔗

  • void set_force_pass_scroll_events(value: bool)

  • bool is_force_pass_scroll_events()

Якщо ввімкнено, події колеса прокручування, оброблені _gui_input(), будуть передані до батьківського контролю, навіть якщо для параметра mouse_filter встановлено значення MOUSE_FILTER_STOP.

Вам слід вимкнути його в корені вашого інтерфейсу користувача, якщо ви не хочете, щоб події прокручування переходили до обробки Node._unhandled_input().

Примітка: Оскільки ця властивість за умовчанням має значення true, це дозволяє вкладеним прокручувати контейнерам працювати з коробки.


float offset_bottom = 0.0 🔗

Відстань між нижньою кромкою вершини та її батьківським керуванням, на основі anchor_bottom.

Оффсети часто контролюються одним або кількома материнськими вузлами Container, тому ви не повинні змінювати їх вручну, якщо ваш вузол є безпосередньою дитиною Container. Оновлення вимкнено автоматично при переході або зміні вузла.


float offset_left = 0.0 🔗

Відстань між лівим краєм вузла та його батьківським елементом керування, на основі anchor_left.

Зміщення часто контролюються одним або декількома батьківськими вузлами Container, тому не варто змінювати їх вручну, якщо ваш вузол є прямим нащадком Container. Зміщення оновлюються автоматично, коли ви переміщуєте або змінюєте розмір вузла.


float offset_right = 0.0 🔗

Відстань між правим краєм вузла та його батьківським елементом керування, на основі anchor_right.

Зміщення часто контролюються одним або декількома батьківськими вузлами Container, тому не варто змінювати їх вручну, якщо ваш вузол є прямим нащадком Container. Зміщення оновлюються автоматично, коли ви переміщуєте або змінюєте розмір вузла.


float offset_top = 0.0 🔗

Відстань між верхнім краєм вузла та його батьківським елементом керування, на основі anchor_top.

Зміщення часто контролюються одним або декількома батьківськими вузлами Container, тому не варто змінювати їх вручну, якщо ваш вузол є прямим нащадком Container. Зміщення оновлюються автоматично, коли ви переміщуєте або змінюєте розмір вузла.


Vector2 pivot_offset = Vector2(0, 0) 🔗

За замовчуванням, вершиною вузла є його лівий верхній кут. Коли ви змінюєте значення rotation або scale, він обертатиметься або масштабуватиметься навколо цієї точки. Встановіть для цієї властивості значення size / 2, щоб обертатися навколо центру елемента керування.


Vector2 position = Vector2(0, 0) 🔗

Положення вузла відносно вузла, що його містить. Воно відповідає верхньому лівому кутку прямокутника. На властивість не впливає pivot_offset.


float rotation = 0.0 🔗

  • void set_rotation(value: float)

  • float get_rotation()

Обертання вузла навколо точки опори в радіанах. Див. pivot_offset, щоб змінити положення точки опори.

Примітка: Ця властивість редагується в інспекторі в градусах. Якщо ви хочете використовувати градуси в скрипті, використовуйте rotation_degrees.


float rotation_degrees 🔗

  • void set_rotation_degrees(value: float)

  • float get_rotation_degrees()

Допоміжна властивість для доступу до rotation у градусах замість радіанів.


Vector2 scale = Vector2(1, 1) 🔗

Масштаб вузла відносно його size. Змініть цю властивість, щоб масштабувати вузол навколо його pivot_offset. Підказка елемента керування також масштабуватиметься відповідно до цього значення.

Примітка: Ця властивість призначена головним чином для використання в анімації. Щоб підтримувати кілька роздільних здатностей у вашому проекті, використовуйте відповідний режим розтягування області перегляду, як описано в документації, замість масштабування елементів керування окремо. Примітка: FontFile.oversampling не враховує масштаб елемента керування Control scale.

Це означає, що масштабування вгору/вниз призведе до розмиття або пікселізації растрових шрифтів та растеризованих (не MSDF) динамічних шрифтів. Щоб забезпечити чіткість тексту незалежно від масштабу, ви можете ввімкнути рендеринг шрифтів MSDF, увімкнувши ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (стосується лише шрифту проекту за замовчуванням) або ввімкнувши Поле відстані зі знаком Multichannel у параметрах імпорту DynamicFont для користувацьких шрифтів. Для системних шрифтів SystemFont.multichannel_signed_distance_field можна ввімкнути в інспекторі.

Примітка: Якщо вузол Control є дочірнім вузлом Container, масштаб буде скинуто до Vector2(1, 1) під час створення сцени. Щоб встановити масштаб елемента Control під час його створення, зачекайте один кадр за допомогою await get_tree().process_frame, а потім встановіть його властивість scale.


Node shortcut_context 🔗

  • void set_shortcut_context(value: Node)

  • Node get_shortcut_context()

Вузол Node, який має бути батьком фокусованого елемента керування Control, щоб ярлик було активовано. Якщо null, ярлик можна активувати, коли будь-який елемент керування сфокусовано (глобальний ярлик). Це дозволяє приймати ярлики лише тоді, коли користувач зосередив увагу на певній ділянці графічного інтерфейсу.


Vector2 size = Vector2(0, 0) 🔗

Розмір вузла, що межує прямокутника, в координатній системі вершини. Container вершини автоматично оновлювати цю властивість.


BitField[SizeFlags] size_flags_horizontal = 1 🔗

  • void set_h_size_flags(value: BitField[SizeFlags])

  • BitField[SizeFlags] get_h_size_flags()

Розкажіть, як вони повинні змінити розмір і розмістити вузол на осі X. Використовуйте комбінацію констанцій SizeFlags для зміни прапорів. Дізнайтеся, що кожен робить.


float size_flags_stretch_ratio = 1.0 🔗

  • void set_stretch_ratio(value: float)

  • float get_stretch_ratio()

Якщо вершина і принаймні одна з його сусідів використовує прапор розміром SIZE_EXPAND, батько Container дозволить зайняти більше або менше місця залежно від цього майна. Якщо цей вузол має протяжний коефіцієнт 2 і його сусіда співвідношення 1, цей вузол займе дві третини наявного простору.


BitField[SizeFlags] size_flags_vertical = 1 🔗

  • void set_v_size_flags(value: BitField[SizeFlags])

  • BitField[SizeFlags] get_v_size_flags()

Розкажіть, як вони повинні змінити розмір і розмістити вузол на осі Y. Використовуйте комбінацію констанцій SizeFlags для зміни прапорів. Дізнайтеся, що кожен робить.


Theme theme 🔗

Theme ресурс цієї вершини і всі її Control і Window діти використовують. Якщо дочірня вершина має власний ресурс Theme, тематичні елементи об'єднуються з визначеннями дитини, які мають вищий пріоритет.

Примітка: Window стилі не матимуть ефекту, якщо вікно вкладено.


StringName theme_type_variation = &"" 🔗

Назва варіації типу теми, що використовується цим Елементом керування для пошуку власних елементів теми. Якщо значення порожнє, використовується назва класу вузла (наприклад, Button для елемента керування Button), а також назви класів усіх батьківських класів (у порядку успадкування).

Якщо встановлено, ця властивість надає найвищий пріоритет типу з вказаним іменем. Цей тип, у свою чергу, може розширювати інший тип, утворюючи ланцюжок залежностей. Дивіться Theme.set_type_variation(). Якщо елемент теми не може бути знайдений за допомогою цього типу або його базових типів, пошук повертається до імен класів.

Примітка: Для пошуку власних елементів Control використовуйте різні методи get_theme_* без зазначення theme_type.

Примітка: Елементи теми шукаються у порядку дерева, від гілки до кореня, де кожен вузол Control перевіряється на наявність властивості theme. Повертається найперший збіг з будь-яким типом/класом. Тема рівня проекту та тема за замовчуванням перевіряються в останню чергу.


AutoTranslateMode tooltip_auto_translate_mode = 0 🔗

Визначає, чи слід автоматично змінювати текст підказки на її перекладену версію залежно від поточної локалі. Використовує той самий режим автоматичного перекладу, що і цей елемент керування, коли встановлено у Node.AUTO_TRANSLATE_MODE_INHERIT.

Примітка: Підказки, налаштовані за допомогою _make_custom_tooltip(), не використовують цей режим автоматичного перекладу автоматично.


String tooltip_text = "" 🔗

  • void set_tooltip_text(value: String)

  • String get_tooltip_text()

Текст підказки за замовчуванням. Підказка з'являється, коли курсор миші користувача затримується на цьому елементі керування на декілька секунд, за умови, що властивість mouse_filter не дорівнює MOUSE_FILTER_IGNORE. Час, необхідний для показу підказки, можна змінити за допомогою параметра PojectSettings.gui/timers/tooltip_delay_sec.

Цей рядок є типовим значенням, яке повертає get_tooltip(). Перевизначити _get_tooltip() для динамічного генерування тексту підказки. Викличте _make_custom_tooltip(), щоб налаштувати інтерфейс і поведінку підказки.

У спливаючій підказці використовуватиметься або стандартна реалізація, або кастомна, яку ви можете надати за допомогою перевизначення _make_custom_tooltip(). Типова підказка method PopupPanel і Label, властивості теми яких можна налаштувати за допомогою методів Theme з "TooltipPanel" і "TooltipLabel" відповідно. Наприклад:

var style_box = StyleBoxFlat.new()
style_box.set_bg_color(Color(1, 1, 0))
style_box.set_border_width_all(2)
# Тут ми припускаємо, що властивості `theme` було попередньо присвоєно кастомну тему.
theme.set_stylebox("panel", "TooltipPanel", style_box)
theme.set_color("font_color", "TooltipLabel", Color(0, 1, 1))

Описи методів

String _accessibility_get_contextual_info() virtual const 🔗

Повернути опис комбінацій клавіш та іншу контекстну довідку для цього елемента керування.


bool _can_drop_data(at_position: Vector2, data: Variant) virtual const 🔗

Godot викликає цей метод, щоб перевірити, чи можна перетягнути data з методу _get_drag_data() елемента керування в at_position. at_position є локальним для цього елемента керування.

Цей метод слід використовувати лише для перевірки даних. Обробляйте дані в _drop_data().

Примітка: Якщо перетягування було ініційовано комбінацією клавіш або accessibility_drag(), at_position встановлюється на Vector2.INF, і як позицію перетягування слід використовувати поточну вибрану позицію елемента/тексту.

func _can_drop_data(position, data):
# Перевірте позицію, якщо вона вам релевантна
# В іншому випадку, просто перевірте дані
return typeof(data) == TYPE_DICTIONARY and data.has("expected")

void _drop_data(at_position: Vector2, data: Variant) virtual 🔗

Godot викликає цей метод, щоб передати вам data з результату _get_drag_data() елемента керування. Godot спочатку викликає _can_drop_data(), щоб перевірити, чи дозволено перетягувати data у at_position, де at_position є локальним для цього елемента керування.

Примітка: Якщо перетягування було ініційовано комбінацією клавіш або accessibility_drag(), at_position встановлюється на Vector2.INF, і як позицію перетягування слід використовувати поточну позицію вибраного елемента/тексту.

[gdscript]
func _can_drop_data(position, data):
return typeof(data) == TYPE_DICTIONARY та data.has("color")

func _drop_data(position, data):
var color = data["color"]
[/gdscript]
[csharp]
public override bool _CanDropData(Vector2 atPosition, Variant data)
{
return data.VariantType == Variant.Type.Dictionary && data.AsGodotDictionary().ContainsKey("color");
}

public override void _DropData(Vector2 atPosition, Variant data)
{
Color color = data.AsGodotDictionary()["color"].AsColor();
}
[/csharp]
[/блоки коду]

String _get_accessibility_container_name(node: Node) virtual const 🔗

Перевизначте цей метод, щоб повернути зрозумілий для людини опис позиції дочірнього вузла node у користувацькому контейнері, доданого до accessibility_name.


Variant _get_drag_data(at_position: Vector2) virtual 🔗

Godot викликає цей метод для отримання даних, які можна перетягувати на елементи керування, що очікують даних перетягування. Повертає null, якщо даних для перетягування немає. Елементи керування, які хочуть отримувати дані перетягування, повинні реалізовувати _can_drop_data() та _drop_data(). at_position є локальним для цього елемента керування. Перетягування може бути примусово виконано за допомогою force_drag().

Попередній перегляд, який слідуватиме за мишею та має представляти дані, можна встановити за допомогою set_drag_preview(). Гарний час для встановлення попереднього перегляду – це цей метод.

Примітка: Якщо перетягування було ініційовано комбінацією клавіш або accessibility_drag(), at_position встановлюється на Vector2.INF, і поточна позиція вибраного елемента/тексту повинна використовуватися як позиція перетягування.

func _get_drag_data(position):
var mydata = make_data() # Це ваш користувацький метод, що генерує дані перетягування.
set_drag_preview(make_preview(mydata)) # Це ваш користувацький метод, що генерує попередній перегляд даних перетягування.
return mydata

Vector2 _get_minimum_size() virtual const 🔗

Віртуальний метод, який реалізує користувач. Повертає мінімальний розмір для цього елемента керування. Альтернатива custom_minimum_size для керування мінімальним розміром за допомогою коду. Фактичний мінімальний розмір буде максимальним значенням з цих двох (на кожній осі окремо).

Якщо не перевизначено, за замовчуванням дорівнює Vector2.ZERO.

Примітка: Цей метод не буде викликано, якщо скрипт приєднано до вузла Control, який вже перевизначив його мінімальний розмір (наприклад, Label, Button, PanelContainer тощо). Він може бути використаний лише з найпростішими вузлами графічного інтерфейсу, такими як Control, Container, Panel тощо.


String _get_tooltip(at_position: Vector2) virtual const 🔗

Віртуальний метод, який реалізує користувач. Повертає текст спливаючої підказки для позиції at_position у локальних координатах елемента керування, яка зазвичай з’являється, коли курсор знаходиться над цим елементом керування. Перегляньте get_tooltip().

Примітка. Якщо цей метод повертає порожній String і _make_custom_tooltip() не перевизначено, підказка не відображається.


void _gui_input(event: InputEvent) virtual 🔗

Віртуальний метод, який реалізує користувач. Використовуйте цей метод для обробки та прийняття вхідних даних на елементах інтерфейсу. Дивіться accept_event().

Приклад використання для клацання елемента керування:

func _gui_input(event):
    if event is InputEventMouseButton:
        if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
            print("I've been clicked D:")

Подія не спрацює, якщо

* клацання за межами елемента керування (див. _has_point());

* елемент керування має mouse_filter, встановлений у MOUSE_FILTER_IGNORE;

* елемент керування перекрито іншим Control, який знаходиться над ним, але не має mouse_filter, встановленого на MOUSE_FILTER_IGNORE;

* батьківський елемент управління має mouse_filter встановлений у MOUSE_FILTER_STOP або прийняв подію;

* це відбувається за межами батьківського прямокутника і у батька увімкнено clip_contents.

Примітка:4 Позиція події відносно початку керування.


bool _has_point(point: Vector2) virtual const 🔗

Віртуальний метод, що реалізується користувачем. Повертає, чи знаходиться задана точка point всередині цього елемента керування.

Якщо не перевизначено, за замовчуванням перевіряється, чи точка знаходиться в межах Rect елемента керування.

Примітка: Якщо ви хочете перевірити, чи точка знаходиться всередині елемента керування, ви можете використати Rect2(Vector2.ZERO, size).has_point(point).


Object _make_custom_tooltip(for_text: String) virtual const 🔗

Віртуальний метод, який реалізує користувач. Повертає вузол Control, який слід використовувати як спливаючу підказку замість стандартної. for_text — це значення, яке повертає get_tooltip().

Повернений вузол має бути типу Control або похідним від Control. Він може мати дочірні вузли будь-якого типу. Він звільняється, коли спливаюча підказка зникає, тому переконайтеся, що ви завжди надаєте новий екземпляр (якщо ви хочете використовувати вже існуючий вузол із дерева сцени, ви можете скопіювати його та передати дубльований екземпляр). Якщо повертається null або вузол, який не є елементом керування, замість нього буде використовуватися підказка за замовчуванням.

Повернений вузол буде додано як дочірній елемент до PopupPanel, тому вам слід надати лише вміст цієї панелі. Цю PopupPanel можна тематизувати за допомогою Theme.set_stylebox() для типу "TooltipPanel" (див. tooltip_text для прикладу).

Примітка: Підказка зменшена до мінімального розміру. Якщо ви хочете переконатися, що він повністю видимий, ви можете встановити для custom_minimum_size якесь ненульове значення.

Примітка: Для вузла (і будь-яких відповідних дочірніх елементів) для CanvasItem.visible має бути встановлено значення true під час повернення, інакше вікно перегляду, яке створює його екземпляр, не зможе надійно обчислити його мінімальний розмір.

Примітка: Якщо перевизначати, цей метод викликається, навіть якщо get_tooltip() повертає порожній рядок. Коли це відбувається з підказкою за замовчуванням, вона не відображається. Щоб скопіювати цю поведінку, поверніть null у цьому методі, якщо for_text порожній.

Приклад: Використовуйте створений вузол як спливаючу підказку:

func _make_custom_tooltip(for_text):
    var label = Label.new()
    label.text = for_text
    return label

Приклад: Використовуйте екземпляр сцени як спливаючу підказку:

func _make_custom_tooltip(for_text):
    var tooltip = preload("res://some_tooltip_scene.tscn").instantiate()
    tooltip.get_node("Label").text = for_text
    return tooltip

Array[Vector3i] _structured_text_parser(args: Array, text: String) virtual const 🔗

Користувач визначає функцію перевизначення алгоритму BiDi.

Повертаємо Array тексту Vector3i та текстові базові напрямки, у лівому порядку. Діапазони повинні обкладатися повним джерелом text без перекриття. Для кожного діапазону використовуйте алгоритм BiDi.


void accept_event() 🔗

Відзначає вхідний захід як ручний. Після того, як ви приймаєте вхідний захід, він перестає пропагувати навіть до вузлів, які слухають Node._unhandled_input() або Node._unhandled_key_input().

Примітка: Це не впливає на методи Input, тільки пропаговані події.


void accessibility_drag() 🔗

Розпочинає операцію перетягування без використання миші.


void accessibility_drop() 🔗

Завершує операцію перетягування без використання миші.


void add_theme_color_override(name: StringName, color: Color) 🔗

Створює локальне перевизначення для Color з теми із зазначеним name. Локальні перевизначення завжди мають перевагу під час отримання елементів теми для елемента керування. Перевизначення можна видалити за допомогою remove_theme_color_override().

Дивіться також get_theme_color().

Приклад: Замініть колір Label і скиньте його пізніше:

# Маючи дочірній вузол мітки "MyLabel", замінимо його колір шрифту новим значенням.
$MyLabel.add_theme_color_override("font_color", Color(1, 0,5, 0))
# Скинемо колір шрифту дочірньої мітки.
$MyLabel.remove_theme_color_override("font_color")
# Крім того, його можна замінити значенням за замовчуванням із типу Label.
$MyLabel.add_theme_color_override("font_color", get_theme_color("font_color", "Label"))

void add_theme_constant_override(name: StringName, constant: int) 🔗

Створює локальне перевизначення для константи теми з вказаним name. Локальні перевизначення завжди мають пріоритет при отриманні елементів теми для елемента керування. Перевизначення можна вилучити за допомогою remove_theme_constant_override().

Дивіться також get_theme_constant().


void add_theme_font_override(name: StringName, font: Font) 🔗

Створює локальну наречену на тему Font з вказаним name. Місцеві перевизнання завжди мають прецедентність при обманці темних елементів для контролю. Видалено перевипуск з видалення_theme_font_override().

Дивитися також get_theme_font().


void add_theme_font_size_override(name: StringName, font_size: int) 🔗

Створює локальну накладну для розміру шрифту теми з вказаною прізвище. Місцеві перевизнання завжди мають прецедентність при обманці темних елементів для контролю. Видалено перевипуск з видалення_theme_font_size_override().

Дивись також get_theme_font_size().


void add_theme_icon_override(name: StringName, texture: Texture2D) 🔗

Створює локальне перевизначення для іконки теми із зазначеним name. Локальні перевизначення завжди мають пріоритет при отриманні елементів теми для елемента керування. Перевизначення можна вилучити за допомогою remove_theme_icon_override().

Дивіться також get_theme_icon().


void add_theme_stylebox_override(name: StringName, stylebox: StyleBox) 🔗

Створює локальне перевизначення для теми StyleBox із зазначеним name. Локальні перевизначення завжди мають перевагу під час отримання елементів теми для елемента керування. Перевизначення можна видалити за допомогою remove_theme_stylebox_override().

Дивіться також get_theme_stylebox().

**Приклад: ** Змінити властивість у StyleBox шляхом його дублювання:

 # Фрагмент нижче припускає, що дочірньому вузлу "MyButton" призначено StyleBoxFlat.
 # Ресурси спільно використовуються між екземплярами, тому нам потрібно їх дублювати
 # щоб уникнути зміни зовнішнього вигляду всіх інших кнопок.
var new_stylebox_normal = $MyButton.get_theme_stylebox("normal").duplicate()
new_stylebox_normal.border_width_top = 3
new_stylebox_normal.border_color = Color(0, 1, 0,5)
 $MyButton.add_theme_stylebox_override("normal", new_stylebox_normal)
 # Видаліть перевизначення поля стилів.
$MyButton.remove_theme_stylebox_override("normal")

void begin_bulk_theme_override() 🔗

Запобігає *_theme_*_override методи з випромінювання NOTIFICATION_THEME_CHANGED доки End_bulk_theme_override().


void end_bulk_theme_override() 🔗

Закінчується масове оновлення теми. Переглянути _bulk_theme_override().


Control find_next_valid_focus() const 🔗

Знаходиться наступний (повно в дереві) Control, який може отримати фокус.


Control find_prev_valid_focus() const 🔗

Знайдіть попередній (приблизно в дереві) Control, який може отримати фокус.


Control find_valid_focus_neighbor(side: Side) const 🔗

Знайдіть наступний Control, який може отримати фокус на вказаному Side.

Примітка: Це відрізняється від get_focus_neighbor(), яка повертає шлях вказаного фокусу сусіда.


void force_drag(data: Variant, preview: Control) 🔗

Примушує перетягувати і обходить _get_drag_data() і set_drag_preview(), передаючи data і preview. Перетягування розпочнеться, навіть якщо миша не знаходиться над цим елементом керування і не натиснута на ньому.

Методи _can_drop_data() та _drop_data() слід застосовувати на елементах керування, які хочуть отримувати дані про перетягування.


float get_anchor(side: Side) const 🔗

Повертає якір для вказаного Side. Метод отримання для anchor_bottom, anchor_left, anchor_right та anchor_top.


Vector2 get_begin() const 🔗

Повертає offset_left і offset_top. Див. також position.


Vector2 get_combined_minimum_size() const 🔗

Повертає сумарний мінімальний розмір з custom_minimum_size та get_minimum_size().


CursorShape get_cursor_shape(position: Vector2 = Vector2(0, 0)) const 🔗

Повертає форму курсора миші для цього елемента керування при наведенні на position у локальних координатах. Для більшості елементів керування це те саме, що й mouse_default_cursor_shape, але деякі вбудовані елементи керування реалізують складнішу логіку.


Vector2 get_end() const 🔗

Повертає offset_right і offset_bottom.


FocusMode get_focus_mode_with_override() const 🔗

Повертає focus_mode, але враховує focus_behavior_recursive. Якщо focus_behavior_recursive встановлено на FOCUS_BEHAVIOR_DISABLED, або йому встановлено на FOCUS_BEHAVIOR_INHERITED, а його предок встановлено на FOCUS_BEHAVIOR_DISABLED, тоді повертає FOCUS_NONE.


NodePath get_focus_neighbor(side: Side) const 🔗

Повертає сусіда фокусу для вказаного Side. Метод отримання для focus_neighbor_bottom, focus_neighbor_left, focus_neighbor_right та focus_neighbor_top.

Примітка: Щоб знайти наступний елемент керування на певній стороні Side, навіть якщо не призначено сусіда, використовуйте find_valid_focus_neighbor().


Rect2 get_global_rect() const 🔗

Повертає позицію та розмір елемента керування відносно полотна, що його містить. Дивіться global_position та size.

Примітка: Якщо сам вузол або будь-який батьківський елемент CanvasItem між вузлом і полотном має нетипове обертання або нахил, отриманий розмір, ймовірно, не матиме сенсу.

Примітка: Встановлення значення Viewport.gui_snap_controls_to_pixels на true може призвести до неточностей округлення між відображеним елементом керування та поверненим Rect2.


Vector2 get_minimum_size() const 🔗

Повертає мінімальний розмір для цього елемента керування. Див. custom_minimum_size.


MouseFilter get_mouse_filter_with_override() const 🔗

Повертає mouse_filter, але враховує mouse_behavior_recursive. Якщо mouse_behavior_recursive має значення MOUSE_BEHAVIOR_DISABLED, або йому встановлено значення MOUSE_BEHAVIOR_INHERITED, а його предок має значення MOUSE_BEHAVIOR_DISABLED, тоді повертає MOUSE_FILTER_IGNORE.


float get_offset(offset: Side) const 🔗

Повертає зміщення для вказаного Side. Метод отримання для offset_bottom, offset_left, offset_right та offset_top.


Vector2 get_parent_area_size() const 🔗

Повертає ширину/висота, зайнята у батьківському управлінні.


Control get_parent_control() const 🔗

Повертає вершину батьківського контролю.


Rect2 get_rect() const 🔗

Повертає позицію та розмір елемента керування у системі координат вузла, що його містить. Дивіться position, scale та size.

Примітка: Якщо обертання елемента не є обертанням за замовчуванням, отриманий розмір не має сенсу.

Примітка: Встановлення значення Viewport.gui_snap_controls_to_pixels на true може призвести до неточностей округлення між відображеним елементом керування та поверненим Rect2.


Vector2 get_screen_position() const 🔗

Повертає позицію цього Керування у глобальних координатах екрана (тобто з урахуванням позиції вікна). Здебільшого корисний для плагінів редактора.

Дорівнює global_position, якщо вікно вбудовано (див. Viewport.gui_embed_subwindows).

Приклад використання для показу спливаючого вікна:

popup_menu.position = get_screen_position() + get_local_mouse_position()
popup_menu.reset_size()
popup_menu.popup()

Color get_theme_color(name: StringName, theme_type: StringName = &"") const 🔗

Повертає Color із першої відповідної Theme в дереві, якщо ця Theme має елемент кольору з указаними name і theme_type. Якщо theme_type опущено, як тип використовується ім’я класу поточного елемента керування або theme_type_variation, якщо воно визначено. Якщо тип є назвою класу, його батьківські класи також перевіряються в порядку успадкування. Якщо тип є варіантом, перевіряються його базові типи в порядку залежностей, тоді перевіряються ім’я класу елемента керування та його батьківські класи.

Для поточного елемента керування спочатку розглядаються його локальні перевизначення (див. add_theme_color_override()), а потім його призначена theme. Після поточного елемента керування розглядається кожен батьківський елемент керування та його призначена theme; елементи керування без призначеної theme пропускаються. Якщо в дереві не знайдено відповідної Theme, використовується спеціальний проєкт Theme (див. ProjectSettings.gui/theme/custom) і Theme за замовчуванням (див. ThemeDB).

func _ready():
    # Отримати колір шрифту, визначений для поточного класу елемента керування, якщо він існує.
    modulate = get_theme_color("font_color")
    # Отримайте колір шрифту, визначений для класу Button.
    modulate = get_theme_color("font_color", "Button")

int get_theme_constant(name: StringName, theme_type: StringName = &"") const 🔗

Повертає постійне місце з першого матчу Theme в дереві, якщо Theme має постійний елемент з вказаною name і theme_type.

Подивитися get_theme_color() для деталей.


float get_theme_default_base_scale() const 🔗

Повертає значення базової ваги за замовчуванням з першого узгодження Theme в дерево, якщо це Theme має дійсне значення Theme.default_base_scale.

Подивитися get_theme_color() для деталей.


Font get_theme_default_font() const 🔗

Повертає шрифт за замовчуванням з першого матчу Theme у дерево, якщо це Theme має дійсне значення email protected.

Подивитися get_theme_color() для деталей.


int get_theme_default_font_size() const 🔗

Повертає значення розміру шрифту за замовчуванням з першого узгодження Theme у дерево, якщо це Theme має дійсне значення email protected.

Подивитися get_theme_color() для деталей.


Font get_theme_font(name: StringName, theme_type: StringName = &"") const 🔗

Повертаємо Font з першого узгодження Theme в дерево, якщо це Theme має шрифтовий елемент з вказаною name і theme_type.

Подивитися get_theme_color() для деталей.


int get_theme_font_size(name: StringName, theme_type: StringName = &"") const 🔗

Повертає розмір шрифту з першого матчу Theme у дерево, якщо це Theme має пункт розмірів шрифту з вказаною name та theme_type.

Подивитися get_theme_color() для деталей.


Texture2D get_theme_icon(name: StringName, theme_type: StringName = &"") const 🔗

Повертає іконку з першого матчу Theme у дерево, якщо Theme має іконку з вказаною name та theme_type.

Подивитися get_theme_color() для деталей.


StyleBox get_theme_stylebox(name: StringName, theme_type: StringName = &"") const 🔗

Повертаємо StyleBox з першого матчу Theme у дерево, якщо це Theme має стильний елемент з вказаною name та theme_type.

Подивитися get_theme_color() для деталей.


String get_tooltip(at_position: Vector2 = Vector2(0, 0)) const 🔗

Повертає текст спливаючої підказки для позиції at_position у локальних координатах елемента керування, яка зазвичай з’являється, коли курсор знаходиться над цим елементом керування. За замовчуванням він повертає tooltip_text.

Цей метод можна змінити, щоб налаштувати його поведінку. Перегляньте _get_tooltip().

Примітка: Якщо цей метод повертає порожній String і _make_custom_tooltip() не перевизначено, підказка не відображається.


void grab_click_focus() 🔗

Створює InputEventMouseButton, який намагається клацнути елемент керування. Якщо подію отримано, елемент керування отримує фокус.

func _process(delta):
     grab_click_focus() # При клацанні іншого вузла керування, цей вузол буде натиснутий.

void grab_focus() 🔗

Викрасти фокус з іншого елемента управління і стати фокусованим елементом управління (див. focus_mode).

Примітка: Використання цього методу разом з Callable.call_deferred() робить його більш надійним, особливо при виклику всередині Node._ready().


bool has_focus() const 🔗

Повертає true, якщо це поточний фокусований елемент керування. Див. focus_mode.


bool has_theme_color(name: StringName, theme_type: StringName = &"") const 🔗

Повертає true, якщо в дереві є відповідна тема Theme, яка має колірний елемент із зазначеними значеннями name та theme_type.

Докладніше див. у методі get_theme_color().


bool has_theme_color_override(name: StringName) const 🔗

Повертає true, якщо існує локальне перевизначення для теми Color із зазначеним name у цьому вузлі Control.

Див. add_theme_color_override().


bool has_theme_constant(name: StringName, theme_type: StringName = &"") const 🔗

Повертає true, якщо в дереві є відповідна тема Theme, яка має константний елемент із зазначеними значеннями name та theme_type.

Докладніше див. у методі get_theme_color().


bool has_theme_constant_override(name: StringName) const 🔗

Повертає true, якщо існує локальне перевизначення для константи теми з вказаним name у цьому вузлі Control.

Див. add_theme_constant_override().


bool has_theme_font(name: StringName, theme_type: StringName = &"") const 🔗

Повертає true, якщо в дереві є відповідна тема Theme, яка містить елемент шрифту з вказаними значеннями name та theme_type.

Докладніше див. у методі get_theme_color().


bool has_theme_font_override(name: StringName) const 🔗

Повертає true, якщо існує локальне перевизначення для теми Font із зазначеним name у цьому вузлі Control.

Див. add_theme_font_override().


bool has_theme_font_size(name: StringName, theme_type: StringName = &"") const 🔗

Повертає true, якщо в дереві є відповідна тема Theme, яка має елемент розміру шрифту з вказаними значеннями name та theme_type.

Докладніше див. у методі get_theme_color().


bool has_theme_font_size_override(name: StringName) const 🔗

Повертає true, якщо є локальне перевизначення для розміру шрифту теми з вказаним name у цьому вузлі Control.

Див. add_theme_font_size_override().


bool has_theme_icon(name: StringName, theme_type: StringName = &"") const 🔗

Повертає true, якщо в дереві є відповідна тема Theme, яка містить елемент значка з вказаними значеннями name та theme_type.

Докладніше див. у методі get_theme_color().


bool has_theme_icon_override(name: StringName) const 🔗

Повертає true, якщо існує локальне перевизначення для значка теми з вказаним name у цьому вузлі Control.

Див. add_theme_icon_override().


bool has_theme_stylebox(name: StringName, theme_type: StringName = &"") const 🔗

Повертає true, якщо в дереві є відповідна тема Theme, яка містить елемент stylebox із зазначеними значеннями name та theme_type.

Докладніше див. у методі get_theme_color().


bool has_theme_stylebox_override(name: StringName) const 🔗

Повертає true, якщо існує локальне перевизначення для теми StyleBox із зазначеним name у цьому вузлі Control.

Див. add_theme_stylebox_override().


bool is_drag_successful() const 🔗

Повертає true, якщо операція перетягування успішна. Альтернатива методу Viewport.gui_is_drag_successful().

Найкраще використовувати з Node.NOTIFICATION_DRAG_END.


bool is_layout_rtl() const 🔗

Повертає true, якщо макет з напрямком справа наліво. Див. також layout_direction.


void release_focus() 🔗

Відмовитися від фокусу. Жоден інший елемент керування не зможе отримувати вхідні дані.


void remove_theme_color_override(name: StringName) 🔗

Видаляє локальне перевизначення для теми Color із зазначеним параметром name, попередньо доданим методом add_theme_color_override або через панель інспектора.


void remove_theme_constant_override(name: StringName) 🔗

Видаляє локальне перевизначення для константи теми із зазначеним name, попередньо доданим за допомогою add_theme_constant_override() або через панель Інспектора.


void remove_theme_font_override(name: StringName) 🔗

Видаляє локальне перевизначення для теми Font із зазначеним параметром name of param, попередньо доданим методом add_theme_font_override або через панель інспектора.


void remove_theme_font_size_override(name: StringName) 🔗

Вилучає локальну накладку для розміру шрифту тема з вказаною name, додана add_theme_font_size_override() або через Inspector dock.


void remove_theme_icon_override(name: StringName) 🔗

Видаліть локальну наречену на значок теми з вказаною name, попередньо доданий add_theme_icon_override() або через Inspector dock.


void remove_theme_stylebox_override(name: StringName) 🔗

Вилучає локальну наречену на тему StyleBox з вказаною name раніше додано add_theme_stylebox_override() або через Inspector dock.


void reset_size() 🔗

Отримувати розмір до get_combined_minimum_size(). Це еквівалентно виклику set_size(Vector2()) (або будь-який розмір нижче мінімуму).


void set_anchor(side: Side, anchor: float, keep_offset: bool = false, push_opposite_anchor: bool = true) 🔗

Встановлює якір для вказаного Side на anchor. Метод встановлення для anchor_bottom, anchor_left, anchor_right та anchor_top.

Якщо параметр keep_offset має значення true, зміщення не оновлюються після цієї операції.

Якщо push_opposite_anchor має значення true і протилежний якір перекриває цей якір, його значення буде перевизначено протилежним. Наприклад, якщо встановити лівий анкер на 1, а правий анкер має значення 0.5, правий анкер також отримає значення 1. Якщо push_opposite_anchor буде false, лівий анкер отримає значення 0.5.


void set_anchor_and_offset(side: Side, anchor: float, offset: float, push_opposite_anchor: bool = false) 🔗

Працює так само, як set_anchor(), але замість keep_offset аргумент і автоматичного оновлення офсету, він дозволяє самостійно налаштувати зсув (див. set_offset()).


void set_anchors_and_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0) 🔗

Комплекти як якірна заміщення, так і зміщенням. Див. набір_anchors_preset() та набір_offsets_preset().


void set_anchors_preset(preset: LayoutPreset, keep_offsets: bool = false) 🔗

Встановлює якорі до preset з перелічення LayoutPreset. Цей код еквівалентний використанню меню Layout у редакторі 2D.

Якщо keep_offsets має значення true, позицію в елементу керування також буде оновлено.


void set_begin(position: Vector2) 🔗

Встановлює offset_left та offset_top одночасно. Еквівалент зміни position.


void set_drag_forwarding(drag_func: Callable, can_drop_func: Callable, drop_func: Callable) 🔗

Вказує, що вказані викликувані елементи будуть використовуватися замість власних віртуальних методів перетягування елемента керування. Якщо викликуваний елемент є порожнім, його відповідний віртуальний метод буде використано як звичайно.

Аргументи для кожного виклику мають бути точно такими ж, як і для відповідних віртуальних методів, а саме


void set_drag_preview(control: Control) 🔗

Показує заданий елемент керування за вказівником миші. Сприятливий час для виклику цього методу в _get_drag_data(). Елемент керування не має бути в дереві сцени. Ви не повинні звільняти елемент керування та не повинні зберігати посилання на елемент керування після закінчення перетягування. Його буде видалено автоматично після завершення перетягування.

@export var color = Color(1, 0, 0, 1)

func _get_drag_data(позиція):
    # Використовуйте елемент керування, якого немає в дереві
    var cpb = ColorPickerButton.new()
    cpb.color = Color
    cpb.size = Vector2(50, 50)
    set_drag_preview(cpb)
    return color

void set_end(position: Vector2) 🔗

Встановлює offset_right та offset_bottom одночасно.


void set_focus_neighbor(side: Side, neighbor: NodePath) 🔗

Встановлює сусіда фокусу для вказаного Side до Control на шляху до вузла neighbor. Метод встановлення для focus_neighbor_bottom, focus_neighbor_left, focus_neighbor_right та focus_neighbor_top.


void set_global_position(position: Vector2, keep_offsets: bool = false) 🔗

Встановлює global_position на задане значення position.

Якщо keep_offsets має значення true, то замість зміщень будуть оновлюватися опорні точки елемента керування.


void set_offset(side: Side, offset: float) 🔗

Встановлює зсув для вказаного Side на offset. Метод сеттера для offset_bottom, offset_left, offset_right та offset_top.


void set_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0) 🔗

Налаштовує офсети до preset з перелічення LayoutPreset. Цей код еквівалентний використанню меню Layout у редакторі 2D.

Використовуйте параметр resize_mode з константами LayoutPresetMode для кращого визначення отриманого розміру Control. Постійний розмір буде ігноруватися, якщо використовується з пресетами, які змінюють розмір, наприклад, PRESET_LEFT_WIDE.

Використовуйте параметр margin для визначення розриву між Control та краями.


void set_position(position: Vector2, keep_offsets: bool = false) 🔗

Встановлює position на задану position.

Якщо keep_offsets має значення true, то замість зміщень будуть оновлюватися опорні точки елемента керування.


void set_size(size: Vector2, keep_offsets: bool = false) 🔗

Встановлює розмір (див. size).

Якщо keep_offsets має значення true, то замість зміщень будуть оновлюватися опорні точки елемента керування.


void update_minimum_size() 🔗

Анулює кеш розміру у цьому вузлі та у батьківських вузлах до верхнього рівня. Призначено для використання з get_minimum_size() при зміні значення, що повертається. Встановлення custom_minimum_size безпосередньо викликає цей метод автоматично.


void warp_mouse(position: Vector2) 🔗

Переміщує курсор миші на позицію параметра відносно position цього Control.

Примітка: warp_mouse() підтримується лише у Windows, macOS та Linux. Він не впливає на Android, iOS та Web.