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

Rect2i

nonclient_area

Rect2i(0, 0, 0, 0)

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

Выдается, когда DPI Window изменяется в результате изменений на уровне ОС (например, перемещение окна с дисплея Retina на дисплей с более низким разрешением).

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


files_dropped(files: PackedStringArray) 🔗

Выдается при перетаскивании файлов из файлового менеджера ОС в окно игры. Аргумент — список путей к файлам.

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

func on_files_dropped(files):
    print(files)

Примечание: Этот сигнал работает только с собственными окнами, т. е. главным окном и производными от Window узла, и когда Viewport.gui_embed_subwindows отключен в главном окне просмотра.


focus_entered() 🔗

Вызывается, когда Window получает фокус.


focus_exited() 🔗

Возникает, когда Window теряет фокус.


go_back_requested() 🔗

Вызывается при отправке запроса на возврат (например, при нажатии кнопки "Назад" на Android), сразу после Node.NOTIFICATION_WM_GO_BACK_REQUEST.


mouse_entered() 🔗

Вызывается, когда курсор мыши попадает в видимую область Window, которая не перекрыта другими Control или окнами, при условии, что его Viewport.gui_disable_input имеет значение false и независимо от того, находится ли он в данный момент в фокусе или нет.


mouse_exited() 🔗

Вызывается, когда курсор мыши покидает видимую область Window, которая не перекрыта другими Control или окнами, при условии, что его Viewport.gui_disable_input имеет значение false и независимо от того, находится ли он в данный момент в фокусе или нет.


nonclient_window_input(event: InputEvent) 🔗

Событие генерируется при получении события мыши пользовательской областью оформления, определенной параметром nonclient_area, и блокировке обычного ввода в окно (например, когда в нем открыт эксклюзивный дочерний элемент). Позиция event указана в системе координат встраиваемого элемента.


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 и меню при наведении указателя мыши на край экрана.

На 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

Window является частью выпадающего списка меню или кнопки выбора OptionButton. Этот флаг нельзя изменить, когда окно видно. Активное всплывающее окно будет получать все вводимые данные единолично, не отвлекая внимание от своего родительского элемента. Всплывающие окна автоматически закрываются, когда пользователь нажимает за их пределами или когда приложение переключается. У всплывающего окна должен быть установлен временный родительский набор (см. transient).

Примечание: Этот флаг не действует во встроенных окнах (если только указанное окно не является всплывающим Popup).

Flags FLAG_EXTEND_TO_TITLE = 6

Содержимое окна расширяется до полного размера окна. В отличие от окна без полей, рамка остается нетронутой и может использоваться для изменения размера окна, строка заголовка прозрачна, но имеет кнопки сворачивания/максимизации/закрытия. Устанавливается с помощью extend_to_title.

Примечание: Этот флаг реализован только в macOS.

** Примечание:** Этот флаг не действует во встроенной Windows.

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 (content_scale_size игнорируется).

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

Содержимое будет растянуто в соответствии с дробным коэффициентом. Это заполняет все доступное пространство в окне, но допускает "колебание пикселя" из-за неравномерного масштабирования пикселей.

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

Базовый размер содержимого в «виртуальных» пикселях. Не следует путать с параметром size, который задает фактический физический размер окна в пикселях. Если значение больше 0, а параметр content_scale_mode имеет значение, отличное от CONTENT_SCALE_MODE_DISABLED, содержимое Window будет масштабироваться при изменении размера окна. Более высокие значения сделают содержимое меньше, так как оно сможет вместить большую часть проекта в поле зрения. Для корневого Window это значение по умолчанию соответствует параметрам ProjectSettings.display/window/size/viewport_width и ProjectSettings.display/window/size/viewport_height.

Например, при использовании CONTENT_SCALE_MODE_CANVAS_ITEMS и content_scale_size, установленного на Vector2i(1280, 720), использование размера окна 2560×1440 приведет к тому, что 2D-элементы будут отображаться вдвое больше исходного размера, поскольку содержимое масштабируется в 2,0 раза (2560,0 / 1280,0 = 2,0, 1440,0 / 720,0 = 2,0).

Подробнее см. раздел «Базовый размер» документации по множественным разрешениям.


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.

** Примечание:** Это свойство работает только в Windows.


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

Устанавливает текущий режим окна.

Примечание: Полноэкранный режим не является исключительным полноэкранным режимом в Windows и Linux.

Примечание: Этот метод работает только с собственными окнами, т. е. главным окном и производными от Window узлами, когда Viewport.gui_embed_subwindows отключен в главном окне просмотра.


bool mouse_passthrough = false 🔗

Если true, все события, связанные с мышью, будут передаваться в основное окно того же приложения. Смотрите также mouse_passthrough_polygon.

Примечание: Это свойство реализовано в Linux (X11), macOS и Windows.

** Примечание:** Это свойство работает только в операционной системе 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.


Rect2i nonclient_area = Rect2i(0, 0, 0, 0) 🔗

  • void set_nonclient_area(value: Rect2i)

  • Rect2i get_nonclient_area()

Если задано, определяет область пользовательского оформления окна, которая будет получать ввод с мыши, даже если обычный ввод в окно заблокирован (например, когда у него открыт дочерний элемент, не имеющий отношения к основному окну). См. также nonclient_window_input.


bool popup_window = false 🔗

Если true, Window будет считаться всплывающим. Всплывающие окна — это подокна, которые не отображаются как отдельные окна в списке окон системного менеджера окон и будут отправлять запрос на закрытие при щелчке по чему-либо за их пределами (если не включено exclusive).


bool popup_wm_hint = false 🔗

Если true, Window будет сигнализировать оконному менеджеру, что оно должно быть «всплывающим» окном, определяемым реализацией (обычно плавающим, безрамочным, неразворачиваемым и неподвижным дочерним окном).


Vector2i position = Vector2i(0, 0) 🔗

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

Если ProjectSettings.display/window/subwindows/embed_subwindows равно false, положение указывается в абсолютных координатах экрана. Обычно это относится к плагинам редактора. Если параметр равен true, положение окна указывается в координатах его родительского Viewport.

Примечание: Это свойство работает, только если initial_position равно WINDOW_INITIAL_POSITION_ABSOLUTE.


bool sharp_corners = false 🔗

Если true, Window переопределит стиль окна ОС для отображения острых углов.

Примечание: Это свойство реализовано только в Windows (11).

Примечание: Это свойство работает только с нативными окнами.


Vector2i size = Vector2i(100, 100) 🔗

Размер окна в пикселях. См. также content_scale_size, который не задает физический размер окна, но влияет на то, как работает масштабирование относительно текущего content_scale_mode.


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, а Windowtransient, это окно (в момент, когда становится видимым) станет переходным к текущему окну, находящемуся в фокусе, а не к непосредственному родительскому окну в иерархии. Обратите внимание, что переходный родитель назначается в момент, когда это окно становится видимым, поэтому его последующее изменение не оказывает никакого эффекта, пока не будет показано снова.


bool transparent = false 🔗

Если true, фон Window может быть прозрачным. Лучше всего использовать это со встроенными окнами.

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

Примечание: Это свойство не имеет эффекта, если 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. Локальные переопределения всегда имеют приоритет при извлечении элементов темы для элемента управления. Переопределение можно удалить с помощью remove_theme_font_override().

См. также get_theme_font().


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

Создает локальное переопределение для размера шрифта темы с указанным name. Локальные переопределения всегда имеют приоритет при извлечении элементов темы для элемента управления. Переопределение можно удалить с помощью remove_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() и 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() 🔗

Завершает массовое обновление переопределения темы. См. begin_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 🔗

Возвращает значение по умолчанию для font из первого подходящего Theme в дереве, если Theme имеет допустимое значение Theme.default.

Подробности смотрите в Control.get_theme_color().


int get_theme_default_font_size() const 🔗

Возвращает значение по умолчанию для font size из первого подходящего Theme в дереве, если Theme имеет допустимое значение Theme.default_font_size.

Подробности смотрите в Control.get_theme_color().


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

Возвращает Font из первого подходящего Theme в дереве, если в Theme есть элемент font с указанными name и theme_type.

Подробности смотрите в Control.get_theme_color().


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

Возвращает font size из первого подходящего Theme в дереве, если в Theme есть элемент font size с указанными name и theme_type.

Подробности смотрите в Control.get_theme_color().


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

Возвращает icon из первого подходящего Theme в дереве, если в Theme есть элемент icon с указанными name и theme_type.

Подробности смотрите в Control.get_theme_color().


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

Возвращает StyleBox из первого подходящего Theme в дереве, если в Theme есть элемент stylebox с указанными name и theme_type.

Подробности смотрите в Control.get_theme_color().


int get_window_id() const 🔗

Возвращает ID окна.


void grab_focus() 🔗

Заставляет окно захватывать фокус, позволяя ему получать пользовательский ввод.


bool has_focus() const 🔗

Возвращает true, если окно находится в фокусе.


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

Возвращает true, если в дереве есть соответствующий Theme, в котором есть элемент color с указанными 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, в котором есть элемент constant с указанными 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, в котором есть элемент font с указанными 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, в котором есть элемент font size с указанными 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, в котором есть элемент icon с указанными 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, в котором есть элемент stylebox с указанными 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, ранее добавленное add_theme_font_override() или через панель инспектора.


void remove_theme_font_size_override(name: StringName) 🔗

Удаляет локальное переопределение размера шрифта темы с указанным name, ранее добавленное add_theme_font_size_override() или через панель инспектора.


void remove_theme_icon_override(name: StringName) 🔗

Удаляет локальное переопределение для значка темы с указанным name, ранее добавленное add_theme_icon_override() или через панель инспектора.


void remove_theme_stylebox_override(name: StringName) 🔗

Удаляет локальное переопределение для темы StyleBox с указанным name, ранее добавленное add_theme_stylebox_override() или через панель инспектора.


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, включается собственный системный IME (редактор метода ввода).


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 встроено и не сфокусировано.