Window

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

Успадковано від: AcceptDialog, Popup

Базовий клас для всіх вікон, діалогів та спливаючих вікон.

Опис

Вузол, який створює вікно. Вікно може бути або власним системним вікном, або вбудованим в інше Window (див. Viewport.gui_embed_subwindows).

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

Властивості

String

accessibility_description

""

String

accessibility_name

""

bool

always_on_top

false

bool

auto_translate

bool

borderless

false

ContentScaleAspect

content_scale_aspect

0

float

content_scale_factor

1.0

ContentScaleMode

content_scale_mode

0

Vector2i

content_scale_size

Vector2i(0, 0)

ContentScaleStretch

content_scale_stretch

0

int

current_screen

bool

exclude_from_capture

false

bool

exclusive

false

bool

extend_to_title

false

bool

force_native

false

WindowInitialPosition

initial_position

0

bool

keep_title_visible

false

Vector2i

max_size

Vector2i(0, 0)

bool

maximize_disabled

false

Vector2i

min_size

Vector2i(0, 0)

bool

minimize_disabled

false

Mode

mode

0

bool

mouse_passthrough

false

PackedVector2Array

mouse_passthrough_polygon

PackedVector2Array()

bool

popup_window

false

bool

popup_wm_hint

false

Vector2i

position

Vector2i(0, 0)

bool

sharp_corners

false

Vector2i

size

Vector2i(100, 100)

Theme

theme

StringName

theme_type_variation

&""

String

title

""

bool

transient

false

bool

transient_to_focused

false

bool

transparent

false

bool

unfocusable

false

bool

unresizable

false

bool

visible

true

bool

wrap_controls

false

Методи

Vector2

_get_contents_minimum_size() virtual const

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()

bool

can_draw() const

void

child_controls_changed()

void

end_bulk_theme_override()

Vector2

get_contents_minimum_size() const

bool

get_flag(flag: Flags) const

Window

get_focused_window() static

LayoutDirection

get_layout_direction() const

Vector2i

get_position_with_decorations() const

Vector2i

get_size_with_decorations() 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

int

get_window_id() const

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

void

hide()

bool

is_embedded() const

bool

is_layout_rtl() const

bool

is_maximize_allowed() const

bool

is_using_font_oversampling() const

void

move_to_center()

void

move_to_foreground()

void

popup(rect: Rect2i = Rect2i(0, 0, 0, 0))

void

popup_centered(minsize: Vector2i = Vector2i(0, 0))

void

popup_centered_clamped(minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75)

void

popup_centered_ratio(ratio: float = 0.8)

void

popup_exclusive(from_node: Node, rect: Rect2i = Rect2i(0, 0, 0, 0))

void

popup_exclusive_centered(from_node: Node, minsize: Vector2i = Vector2i(0, 0))

void

popup_exclusive_centered_clamped(from_node: Node, minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75)

void

popup_exclusive_centered_ratio(from_node: Node, ratio: float = 0.8)

void

popup_exclusive_on_parent(from_node: Node, parent_rect: Rect2i)

void

popup_on_parent(parent_rect: Rect2i)

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

request_attention()

void

reset_size()

void

set_flag(flag: Flags, enabled: bool)

void

set_ime_active(active: bool)

void

set_ime_position(position: Vector2i)

void

set_layout_direction(direction: LayoutDirection)

void

set_unparent_when_invisible(unparent: bool)

void

set_use_font_oversampling(enable: bool)

void

show()

void

start_drag()

void

start_resize(edge: WindowResizeEdge)

Властивості теми

Color

title_color

Color(0.875, 0.875, 0.875, 1)

Color

title_outline_modulate

Color(0, 0, 0, 1)

int

close_h_offset

18

int

close_v_offset

24

int

resize_margin

4

int

title_height

36

int

title_outline_size

0

Font

title_font

int

title_font_size

Texture2D

close

Texture2D

close_pressed

StyleBox

embedded_border

StyleBox

embedded_unfocused_border


Сигнали

about_to_popup() 🔗

Викликається одразу після виклику popup(), перед тим, як з'явиться Window або виконати будь-які дії.


close_requested() 🔗

Увімкнено, коли натиснута кнопка Window або при включенні popup_window та натискає на вікно.

Цей сигнал можна використовувати для обробки вікон, наприклад, за допомогою підключення його до hide().


dpi_changed() 🔗

Видається, коли роздільна здатність Window змінюється в результаті змін на рівні ОС (наприклад, переміщення вікна з дисплея Retina на дисплей з нижчою роздільною здатністю).

Примітка: Реалізовано лише на macOS та Linux (Wayland).


files_dropped(files: PackedStringArray) 🔗

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

func _ready():
    get_window().files_dropped.connect(on_files_dropped)

func on_files_dropped(file):
    друк (file)

Примітка: ** Цей сигнал працює лише з рідними вікнами, тобто головним вікном і вузлами, похідними від **Window, коли Viewport.gui_embed_subwindows вимкнено в головному вікні перегляду.


focus_entered() 🔗

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


focus_exited() 🔗

Увімкніть, коли Window втратить свою увагу.


go_back_requested() 🔗

Увімкнено, коли відправиться запит назад (наприклад, натискання кнопки "Back" на Андроїд), прямо після [constant Node. УВАГА.


mouse_entered() 🔗

Увімкнено, коли курсор мишки входить до видимої області Window, що не входить до інших Control або вікна, що надавалися його Viewport.gui_disable_input false і незалежно від того, чи зараз він зосередився або ні.


mouse_exited() 🔗

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


theme_changed() 🔗

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


title_changed() 🔗

Видається під час зміни тексту рядка заголовка вікна.


titlebar_changed() 🔗

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


visibility_changed() 🔗

Увімкнено, коли Window видно або зникає.


window_input(event: InputEvent) 🔗

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


Переліки

enum Mode: 🔗

Mode MODE_WINDOWED = 0

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

Mode MODE_MINIMIZED = 1

Мінімізований віконний режим, тобто Window не видно і доступний у віконному списку вікон. Зазвичай відбувається при натисканні кнопки мінімізації.

Mode MODE_MAXIMIZED = 2

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

Mode MODE_FULLSCREEN = 3

Повноекранний режим з повною підтримкою кількох вікон.

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

На Android: Це вмикає режим занурення.

На macOS: Для відображення запущеного проекту використовується новий робочий стіл.

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

Mode MODE_EXCLUSIVE_FULLSCREEN = 4

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

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

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

На Android: Це вмикає режим занурення.

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

На macOS: Для відображення запущеного проекту використовується новий робочий стіл. Ексклюзивний повноекранний режим запобігає відображенню Dock та Menu, коли вказівник миші знаходиться на краю екрана.

На Linux (X11): Ексклюзивний повноекранний режим обходить композитор.

На Linux (Wayland): Еквівалентно MODE_FULLSCREEN.

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


enum Flags: 🔗

Flags FLAG_RESIZE_DISABLED = 0

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

Flags FLAG_BORDERLESS = 1

Вікно не має рідних титульних барів та інших прикрас. Цей прапор ігнорується для повноекранних вікон. Набір з borderless.

Flags FLAG_ALWAYS_ON_TOP = 2

Вікно пливе поверх всіх інших вікон. Цей прапор ігнорується для повноекранних вікон. Набір з always_on_top.

Flags FLAG_TRANSPARENT = 3

Віковий фон може бути прозорим. Набір з transparent.

Примітка: Цей прапор не має ефекту, якщо або ProjectSettings.display/window/per_pixel_transparency/allowed, або вікна Viewport.transparent_bg встановлюється на false.

Flags FLAG_NO_FOCUS = 4

Вікно не може бути зосередженим. Безконтактне вікно ігнорує всі вводи, крім кліків миші. Набір з unfocusable.

Flags FLAG_POPUP = 5

Вікно є частиною меню або Налаштування кнопки випадання. Цей прапор не може бути змінений, коли вікно видно. Активний спливаючий вікно буде отримувати тільки всі вхідні, не вкрасивши фокус від свого батька. При використанні натиснути за її межами, або при вимкненні програми. Вікна попуп повинна мати хідний набір батьків (див. transient).

Примітка: Цей прапор не впливає на вбудовані вікна (безкоштовно зазначене вікно є Popup).

Flags FLAG_EXTEND_TO_TITLE = 6

Вміст вікон розширюється до повного розміру вікна. На відміну від без кордонів вікно, рама залишається неактуальним і може бути використана для зміни вікна, рядок заголовка прозора, але мають мінімізацію/максимізувати/закривати кнопки. Набір з extend_to_title.

Примітка: Цей прапор реалізується тільки на macOS.

Примітка: Цей прапор не впливає на вбудовані вікна.

Flags FLAG_MOUSE_PASSTHROUGH = 7

Всі події мишки пропускаються до основного вікна того ж програми.

Примітка: Цей прапор не впливає на вбудовані вікна.

Flags FLAG_SHARP_CORNERS = 8

Стиль вікна перевизначено, створюючи гострі кути.

Примітка: цей прапорець не діє на вбудовані вікна.

Примітка: цей прапор реалізований лише у Windows (11).

Flags FLAG_EXCLUDE_FROM_CAPTURE = 9

Windows виключається зі знімків екрана, зроблених за допомогою DisplayServer.screen_get_image(), DisplayServer.screen_get_image_rect() та DisplayServer.screen_get_pixel().

Примітка: Цей прапор не діє у вбудованих вікнах.

Примітка: Цей прапор реалізований в macOS і Windows (10, 20H1).

Примітка: Встановлення цього прапора запобігає захопленню зображення вікна стандартними методами створення знімків екрана, але НЕ гарантує, що інші програми не зможуть захопити зображення. Його не слід використовувати як засіб DRM або заходи безпеки.

Flags FLAG_POPUP_WM_HINT = 10

Сигналізує менеджеру вікон, що це вікно має бути визначеним реалізацією "спливаючим вікном" (зазвичай плаваючим, безрамковим, незнімним дочірнім вікном).

Flags FLAG_MINIMIZE_DISABLED = 11

Кнопка мінімізації вікна вимкнена.

Примітка: Цей прапорець реалізовано в macOS та Windows.

Flags FLAG_MAXIMIZE_DISABLED = 12

Кнопка розгортання вікна вимкнена.

Примітка: Цей прапорець реалізовано в macOS та Windows.

Flags FLAG_MAX = 13

Макс. значення Flags.


enum ContentScaleMode: 🔗

ContentScaleMode CONTENT_SCALE_MODE_DISABLED = 0

Зміст не буде масштабовано відповідно до розміру Window.

ContentScaleMode CONTENT_SCALE_MODE_CANVAS_ITEMS = 1

Зміст буде надано за розміром цілі. Це більше продуктивності, ніж CONTENT_SCALE_MODE_VIEWPORT, але забезпечує кращі результати.

ContentScaleMode CONTENT_SCALE_MODE_VIEWPORT = 2

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


enum ContentScaleAspect: 🔗

ContentScaleAspect CONTENT_SCALE_ASPECT_IGNORE = 0

Аспект буде ігноруватися. Скальлінг просто розтягувати вміст, щоб відповідати розміру цілі.

ContentScaleAspect CONTENT_SCALE_ASPECT_KEEP = 1

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

ContentScaleAspect CONTENT_SCALE_ASPECT_KEEP_WIDTH = 2

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

ContentScaleAspect CONTENT_SCALE_ASPECT_KEEP_HEIGHT = 3

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

ContentScaleAspect CONTENT_SCALE_ASPECT_EXPAND = 4

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


enum ContentScaleStretch: 🔗

ContentScaleStretch CONTENT_SCALE_STRETCH_FRACTIONAL = 0

Зміст буде розтягувати за фракційним фактором. Це заповнює весь простір, доступний у вікні, але дозволяє "піксельний wobble" відбуватися через нерівномірне масштабування пікселів.

ContentScaleStretch CONTENT_SCALE_STRETCH_INTEGER = 1

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


enum LayoutDirection: 🔗

LayoutDirection LAYOUT_DIRECTION_INHERITED = 0

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

LayoutDirection LAYOUT_DIRECTION_APPLICATION_LOCALE = 1

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

LayoutDirection LAYOUT_DIRECTION_LTR = 2

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

LayoutDirection LAYOUT_DIRECTION_RTL = 3

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

LayoutDirection LAYOUT_DIRECTION_SYSTEM_LOCALE = 4

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

LayoutDirection LAYOUT_DIRECTION_MAX = 5

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

LayoutDirection LAYOUT_DIRECTION_LOCALE = 1

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


enum WindowInitialPosition: 🔗

WindowInitialPosition WINDOW_INITIAL_POSITION_ABSOLUTE = 0

Початкова позиція вікна визначається положенням position.

WindowInitialPosition WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN = 1

Початкова позиція вікна - центр основного екрана.

WindowInitialPosition WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN = 2

Початкова позиція вікна - центр головного вікна.

WindowInitialPosition WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN = 3

Початкова позиція вікна - центр current_screen екран.

WindowInitialPosition WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS = 4

Початкова позиція вікна - центр екрана, що містить тостер мишки.

WindowInitialPosition WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS = 5

Початкова позиція вікна - центр екрана, що містить вікно з фокусом клавіатури.


Константи

NOTIFICATION_VISIBILITY_CHANGED = 30 🔗

Увімкнено при зміні видимості Window, прямо перед visibility_changed.

NOTIFICATION_THEME_CHANGED = 32 🔗

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

  • Властивість theme змінюється на цьому вузлі або будь-якому з його предків.

  • Властивість theme_type_variation змінюється на цьому вузлі.

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

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


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

String accessibility_description = "" 🔗

  • void set_accessibility_description(value: String)

  • String get_accessibility_description()

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


String accessibility_name = "" 🔗

  • void set_accessibility_name(value: String)

  • String get_accessibility_name()

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


bool always_on_top = false 🔗

Якщо true, вікно буде поверх усіх інших вікон. Не працює, якщо ввімкнено transient.


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 borderless = false 🔗

Якщо true, вікно не буде кордонів.


ContentScaleAspect content_scale_aspect = 0 🔗

Визначає поведінку аспекту вмісту під час зміни розміру Window. Базовий аспект визначається параметром content_scale_size.


float content_scale_factor = 1.0 🔗

  • void set_content_scale_factor(value: float)

  • float get_content_scale_factor()

Визначає базовий масштаб вмісту Window, коли його size дорівнює content_scale_size. Дивіться також Viewport.get_stretch_transform().


ContentScaleMode content_scale_mode = 0 🔗

Вкажіть, як вміст масштабується при перерахуванні Window.


Vector2i content_scale_size = Vector2i(0, 0) 🔗

  • void set_content_scale_size(value: Vector2i)

  • Vector2i get_content_scale_size()

Базовий розмір вмісту (тобто вузлів, які намальовані всередині вікна). Якщо незеро, вміст Window буде масштабовано, коли вікно не відрізняється різним розміром.


ContentScaleStretch content_scale_stretch = 0 🔗

Політика, яка використовується для визначення остаточного коефіцієнта масштабування для 2D-елементів. Це впливає на те, як застосовується content_scale_factor, на додаток до автоматичного коефіцієнта масштабування, визначеного content_scale_size.


int current_screen 🔗

  • void set_current_screen(value: int)

  • int get_current_screen()

В даний час екран вікна.


bool exclude_from_capture = false 🔗

Якщо значення true, Window виключається зі знімків екрана, зроблених методами DisplayServer.screen_get_image(), DisplayServer.screen_get_image_rect() та DisplayServer.screen_get_pixel().

Примітка: Ця властивість реалізована в macOS та Windows.

Примітка: Увімкнення цього параметра запобігатиме стандартним методам знімків екрана захопленню зображення вікна, але НЕ гарантує, що інші програми не зможуть захопити зображення. Його не слід використовувати як DRM або засіб безпеки.


bool exclusive = false 🔗

  • void set_exclusive(value: bool)

  • bool is_exclusive()

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

Потрібні transient ввімкнуті до роботи.


bool extend_to_title = false 🔗

Якщо true, вміст Window розгортається на весь розмір вікна, а рядок заголовка вікна стає прозорим.

Примітка: Ця властивість реалізована лише у macOS.

Примітка: Ця властивість працює лише з нативними вікнами.


bool force_native = false 🔗

  • void set_force_native(value: bool)

  • bool get_force_native()

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


WindowInitialPosition initial_position = 0 🔗

Визначає початковий тип позиції для Window.


bool keep_title_visible = false 🔗

  • void set_keep_title_visible(value: bool)

  • bool get_keep_title_visible()

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


Vector2i max_size = Vector2i(0, 0) 🔗

Якщо незеро, то Window не може бути більшим, ніж цей розмір.

Примітка: Ця властивість буде ігноруватися, якщо значення нижче min_size.


bool maximize_disabled = false 🔗

Якщо true, кнопка розгортання Window вимкнена.

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

Примітка: Ця властивість реалізована лише в macOS та Windows.


Vector2i min_size = Vector2i(0, 0) 🔗

Якщо незеро, то Window не може бути меншим, ніж цей розмір.

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


bool minimize_disabled = false 🔗

Якщо true, кнопка згортання вікна Window вимкнена.

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

Примітка: Ця властивість реалізована лише в macOS та Windows.


Mode mode = 0 🔗

  • void set_mode(value: Mode)

  • Mode get_mode()

Встановіть поточний режим вікна.

Note: Fullscreen режим не ексклюзивний повноекранний екран на Windows і Linux.

Примітка: Цей метод працює тільки з рідними вікнами, тобто основним вікном та Window-захищеними вузлами, коли Viewport.gui_embed_subwindows вимкнено в головному порту.


bool mouse_passthrough = false 🔗

Якщо true, всі події мишки будуть передані до основного вікна тієї ж програми. Дивись ще mouse_passthrough_polygon.

Примітка: Дана нерухомість реалізується на Linux (X11), macOS і Windows.

Примітка: Зручності та умови для роботи з вікнами.


PackedVector2Array mouse_passthrough_polygon = PackedVector2Array() 🔗

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

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

# Встановити регіон, використовуючи вузол Path2D.
$Window.mouse_passthrough_polygon = $Path2D.curve.get_baked_points()

# Встановити область, використовуючи вузол Polygon2D.
$Window.mouse_passthrough_polygon = $Polygon2D.polygon

# Скинути регіон до стандартних.
$Window.mouse_passthrough_polygon = []

Примітка: Ця властивість ігнорується, якщо mouse_passthrough має значення true.

Примітка. У Windows частина вікна, яка лежить за межами області, не малюється, тоді як у Linux (X11) і macOS це так.

Примітка. Ця властивість реалізована в Linux (X11), macOS і Windows.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.


bool popup_window = false 🔗

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


bool popup_wm_hint = false 🔗

Якщо true, Window сигналізуватиме менеджеру вікон, що воно має бути визначеним реалізацією "спливаючим вікном" (зазвичай плаваючим, безрамковим, незнімним дочірнім вікном).


Vector2i position = Vector2i(0, 0) 🔗

Положення вікна в пікселях.

Якщо ProjectSettings.Виберіть/window/subwindows/embed_subwindows false, позиція в абсолютних координатах екрана. Зазвичай це стосується додатків редактора. Якщо налаштування true, позиція вікна знаходиться в координати його батька Viewport.

Примітка: Ця властивість тільки працює, якщо initial_position встановлюється на WINDOW_INITIAL_SETTING_ABSOLUTE.


bool sharp_corners = false 🔗

Якщо true, Window замінить стиль вікна ОС, щоб відображати гострі кути.

Примітка: Ця властивість реалізована лише у Windows (11).

Примітка: Ця властивість працює лише з рідними вікнами.


Vector2i size = Vector2i(100, 100) 🔗

Розмір вікна в пікселів.


Theme theme 🔗

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

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


StringName theme_type_variation = &"" 🔗

Назва варіації тематичного типу, що використовується цим Window для перегляду власних тематичних елементів. Детальніше Control.theme_type_variation.


String title = "" 🔗

Назва вікна. Якщо Window є рідним, заголовок, викладеним в Theme, не буде ефектно.


bool transient = false 🔗

  • void set_transient(value: bool)

  • bool is_transient()

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

Примітка, що поведінка може відрізнятися залежно від платформи.


bool transient_to_focused = false 🔗

  • void set_transient_to_focused(value: bool)

  • bool is_transient_to_focused()

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


bool transparent = false 🔗

Якщо true, фон Window може бути прозорим. Це краще використовувати з вбудованими вікнами.

Примітка:Підтримка прозорості здійснюється на Linux, macOS та Windows, але доступність може відрізнятися залежно від драйвера GPU, диспетчера відображення та можливостей композитора.

Примітка: Ця властивість не має ефекту, якщо ProjectSettings.display/window/per_pixel_transparency/allowed встановлюється на false.


bool unfocusable = false 🔗

Якщо true, то Window не може бути зосереджений, а не взаємодіяти з. Це ще можна побачити.


bool unresizable = false 🔗

Якщо true, розмір вікна не можна змінити.


bool visible = true 🔗

  • void set_visible(value: bool)

  • bool is_visible()

Якщо true, вікно видно.


bool wrap_controls = false 🔗

  • void set_wrap_controls(value: bool)

  • bool is_wrapping_controls()

Якщо true, розмір вікна буде автоматично оновлюватися, коли додана дочірня вершина або видалена, ігнорування min_size, якщо новий розмір більший.

Якщо false, вам потрібно викликати child_controls_changed() вручну.


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

Vector2 _get_contents_minimum_size() virtual const 🔗

Віртуальний метод для реалізації користувача. Надіслати значення, що повертається get_contents_minimum_size().


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

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

Див. також метод get_theme_color() та метод Control.add_theme_color_override() для отримання додаткової інформації.


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 із зазначеним параметром назва параметра. Локальні перевизначення завжди мають пріоритет під час отримання елементів теми для елемента керування. Перевизначення можна видалити за допомогою методу remove_theme_stylebox_override().

Див. також метод get_theme_stylebox() та метод Control.add_theme_stylebox_override() для отримання додаткової інформації.


void begin_bulk_theme_override() 🔗

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


bool can_draw() const 🔗

Повертаємо вашу увагу на те, що вікно намальовується на екрані.


void child_controls_changed() 🔗

Запитує оновлення розміру Window, щоб відповідати вузям Control.


void end_bulk_theme_override() 🔗

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


Vector2 get_contents_minimum_size() const 🔗

Повертає комбінований мінімальний розмір від дитини Control вершини вікна. Використовуйте child_controls_changed() для оновлення його при зміні вузлів дитини.

Значення, подана цим методом, може передаватися з _get_contents_minimum_size().


bool get_flag(flag: Flags) const 🔗

Повертає true, якщо встановлено flag.


Window get_focused_window() static 🔗

Повертає сфокусоване вікно.


LayoutDirection get_layout_direction() const 🔗

Повертає напрямок макета та напрямок написання тексту.


Vector2i get_position_with_decorations() const 🔗

Повертає позицію вікна, включаючи його межу.

Примітка: Якщо visible має значення false, цей метод повертає те саме значення, що й position.


Vector2i get_size_with_decorations() const 🔗

Повертає розмір вікна, включаючи його межу.

Примітка: Якщо visible має значення false, цей метод повертає те саме значення, що й size.


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

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

Детальніше Control.get_theme_color().


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

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

Детальніше Control.get_theme_color().


float get_theme_default_base_scale() const 🔗

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

Див. Control.get_theme_color() для деталей.


Font get_theme_default_font() const 🔗

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

Див. Control.get_theme_color() для деталей.


int get_theme_default_font_size() const 🔗

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

Див. Control.get_theme_color() для деталей.


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

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

Див. Control.get_theme_color() для деталей.


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

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

Див. Control.get_theme_color() для деталей.


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

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

Див. Control.get_theme_color() для деталей.


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

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

Див. Control.get_theme_color() для деталей.


int get_window_id() const 🔗

Повертає ідентифікатор вікна.


void grab_focus() 🔗

Причини виникнення вікна, щоб захопити фокус, що дозволяє отримати вхід користувача.


bool has_focus() const 🔗

Повертає true, якщо вікно у фокусі.


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

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

Див. Control.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.

Див. Control.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.

Див. Control.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.

Див. Control.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.

Див. Control.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 в дереві, який має стильний елемент з вказаною name і theme_type.

Див. Control.get_theme_color() для деталей.


bool has_theme_stylebox_override(name: StringName) const 🔗

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

Див. add_theme_stylebox_override().


void hide() 🔗

Приховує вікно. Це не так само, як і мінімована держава. Приховане вікно не може бути взаємодіє з та потребами, щоб бути видимим з show().


bool is_embedded() const 🔗

Повертає true, якщо вікно наразі вбудовано в інше вікно.


bool is_layout_rtl() const 🔗

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


bool is_maximize_allowed() const 🔗

Повертає true, якщо вікно можна розгорнути (увімкнено кнопку розгортання).


bool is_using_font_oversampling() const 🔗

Повертає true, якщо увімкнено перенаправлення шрифту. Подивитися set_use_font_oversampling().


void move_to_center() 🔗

Центрує рідне вікно на поточному екрані, а вбудоване вікно — на його вбудованому модулі Viewport.


void move_to_foreground() 🔗

Застаріло: Use grab_focus() instead.

Причини виникнення вікна, щоб захопити фокус, що дозволяє отримати вхід користувача.


void popup(rect: Rect2i = Rect2i(0, 0, 0, 0)) 🔗

Показує Window та робить його тимчасовим (див. transient). Якщо вказано rect, він буде встановлено як розмір Window. Не вдається викликати функцію в головному вікні.

Якщо ProjectSettings.display/window/subwindows/embed_subwindows має значення true (режим одного вікна), координати rect є глобальними та відносними до верхнього лівого кута головного вікна (за винятком декорацій вікна). Якщо координати положення rect є від'ємними, вікно буде розташоване за межами головного вікна і може бути невидимим у результаті.

Якщо ProjectSettings.display/window/subwindows/embed_subwindows має значення false (режим кількох вікон), координати rect є глобальними та відносними до верхнього лівого кута крайнього лівого екрана. Якщо координати положення rect є від'ємними, вікно буде розміщено у верхньому лівому куті екрана.

Примітка: rect має бути в глобальних координатах, якщо вказано.


void popup_centered(minsize: Vector2i = Vector2i(0, 0)) 🔗

Відкриває Window по центру поточного екрана, з необов'язковим мінімальним розміром. Якщо Window вбудоване, воно буде розташоване по центру батьківського Viewport.

Примітка: Виклик зі значенням за замовчуванням minsize еквівалентний виклику з size.


void popup_centered_clamped(minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75) 🔗

Поповнення Window, розташованого всередині свого батька Window. fallback_ratio визначає максимальний розмір Window, щодо свого батька.

Примітка: Викликати його з значенням за замовчуванням minsize еквівалентно виклику з size.


void popup_centered_ratio(ratio: float = 0.8) 🔗

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

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


void popup_exclusive(from_node: Node, rect: Rect2i = Rect2i(0, 0, 0, 0)) 🔗

Намагається зробити цей діалог батьком до останнього ексклюзивного вікна відносно from_node, а потім викликає popup() на ньому. У діалогового вікна не потрібно бути поточного батька, інакше метод не спрацьовує.

Дивитись також set_unparent_when_invisible() і Node.get_last_exclusive_window().


void popup_exclusive_centered(from_node: Node, minsize: Vector2i = Vector2i(0, 0)) 🔗

Намагається зробити цей діалог батьком до останнього ексклюзивного вікна відносно from_node, а потім викликає popup_centered() на ньому. У діалогового вікна не потрібно бути поточного батька, інакше метод не спрацьовує.

Дивитись також set_unparent_when_invisible() і Node.get_last_exclusive_window().


void popup_exclusive_centered_clamped(from_node: Node, minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75) 🔗

Намагається зробити цей діалог батьком до останнього ексклюзивного вікна відносно from_node, а потім викликає popup_centered_clamped() на ньому. У діалогового вікна не потрібно бути поточного батька, інакше метод не спрацьовує.

Дивитись також set_unparent_when_invisible() і Node.get_last_exclusive_window().


void popup_exclusive_centered_ratio(from_node: Node, ratio: float = 0.8) 🔗

Намагається зробити цей діалог батьком до останнього ексклюзивного вікна відносно from_node, а потім викликає popup_centered_ratio() на ньому. У діалогового вікна не потрібно бути поточного батька, інакше метод не спрацьовує.

Дивитись також set_unparent_when_invisible() і Node.get_last_exclusive_window().


void popup_exclusive_on_parent(from_node: Node, parent_rect: Rect2i) 🔗

Намагається зробити цей діалог батьком до останнього ексклюзивного вікна відносно from_node, а потім викликає popup_on_parent() на ньому. У діалогового вікна не потрібно бути поточного батька, інакше метод не спрацьовує.

Дивитись також set_unparent_when_invisible() і Node.get_last_exclusive_window().


void popup_on_parent(parent_rect: Rect2i) 🔗

Поповнення Window з посадою, зміщеним батьком Window. Якщо вбудовується Window, має такий же ефект, як popup().


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 request_attention() 🔗

Розповсюдження ОС, що Window вимагає уваги. Це робить вікно певним чином в залежності від системи, наприклад, він може зв'язуватися на панелі завдань.


void reset_size() 🔗

Скидає розмір до мінімального значення, яке є максимальним значенням min_size та (якщо wrap_controls увімкнено) get_contents_minimum_size(). Це еквівалентно виклику set_size(Vector2i()) (або будь-якого розміру, меншого за мінімальне значення).


void set_flag(flag: Flags, enabled: bool) 🔗

Встановлює вказаний прапор вікна.


void set_ime_active(active: bool) 🔗

Якщо active є true, що дозволяє нативно зрозумілим редактором системи.


void set_ime_position(position: Vector2i) 🔗

Переміщення IME до даної позиції.


void set_layout_direction(direction: LayoutDirection) 🔗

Встановлює напрямок макета та напрямок написання тексту. Право-ліві макети необхідні для певних мов (наприклад, Арабський і іврит).


void set_unparent_when_invisible(unparent: bool) 🔗

Якщо unparent є true, вікно автоматично непаровано при переході невидиме.

Примітка: Переконайтеся в тому, щоб зберегти посилання на вершину, інакше він буде сирим. Вам також потрібно вручну зателефонувати Node.queue_free(), щоб звільнити вікно, якщо він не батьківований.


void set_use_font_oversampling(enable: bool) 🔗

Увімкнути перевантаження шрифтів. Це робить шрифти краще, коли вони масштабуються.


void show() 🔗

З'являються Window. Це дозволяє взаємодіяти з Window і не змінює будь-яку властивість, крім видимості (наприклад, popup()).


void start_drag() 🔗

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


void start_resize(edge: WindowResizeEdge) 🔗

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


Описи тематичної нерухомості

Color title_color = Color(0.875, 0.875, 0.875, 1) 🔗

Колір тексту назв.


Color title_outline_modulate = Color(0, 0, 0, 1) 🔗

Колір тексту заголовка.


int close_h_offset = 18 🔗

Зміщення горизонтального положення кнопки закриття відносно кінця рядка заголовка до початку рядка заголовка.


int close_v_offset = 24 🔗

Вертикальне зміщення кнопки закриття відносно нижньої частини рядка заголовка до верхньої частини рядка заголовка.


int resize_margin = 4 🔗

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


int title_height = 36 🔗

Висота заголовка.


int title_outline_size = 0 🔗

Розмір знака заголовка.


Font title_font 🔗

Шрифт, який використовується для позначення назви.


int title_font_size 🔗

Розмір шрифту назв.


Texture2D close 🔗

Ікона для близької кнопки.


Texture2D close_pressed 🔗

Ікона для близької кнопки, коли вона натискається.


StyleBox embedded_border 🔗

Стиль фону використовується при вбудованні Window. Зауважте, що це тягнеться тільки під зміст вікна, включаючи назву. Для належних кордонів і стилю бару можна використовувати expand_margin_* властивості StyleBoxFlat.

Примітка: Ввімкнено фон вмісту, якщо transparent.


StyleBox embedded_unfocused_border 🔗

Стиль фону, що використовується при вбудованій і нефокусованій Window.