PopupMenu

Наследует: Popup < Window < Viewport < Node < Object

Модальное окно, используемое для отображения списка опций.

Описание

PopupMenu — это модальное окно, используемое для отображения списка параметров. Полезно для панелей инструментов и контекстных меню.

Размер PopupMenu можно ограничить с помощью Window.max_size. Если высота списка элементов превышает максимальную высоту PopupMenu, ScrollContainer внутри всплывающего окна позволит пользователю прокручивать содержимое. Если максимальный размер не установлен или установлен на 0, высота PopupMenu будет ограничена родительским прямоугольником.

Все методы set_* допускают отрицательные индексы элементов, т.е. -1 для доступа к последнему элементу, -2 для выбора предпоследнего элемента и так далее.

Инкрементальный поиск: Как и ItemList и Tree, PopupMenu поддерживает поиск внутри списка, пока элемент управления находится в фокусе. Нажмите клавишу, соответствующую первой букве имени элемента, чтобы выбрать первый элемент, начинающийся с заданной буквы. После этого есть два способа выполнить инкрементальный поиск: 1) Нажмите ту же клавишу еще раз до истечения времени ожидания, чтобы выбрать следующий элемент, начинающийся с той же буквы. 2) Нажмите клавиши с буквами, соответствующими остальной части слова, до истечения времени ожидания, чтобы выбрать нужный элемент напрямую. Оба действия будут сброшены до начала списка, если прошло время ожидания с момента последнего нажатия клавиши. Вы можете настроить время ожидания, изменив параметр ProjectSettings.gui/timers/incremental_search_max_interval_msec.

Примечание: PopupMenu по умолчанию невидим. Чтобы сделать его видимым, вызовите один из методов popup_* из Window на узле, например, Window.popup_centered_clamped().

Примечание: Значения ID, используемые для элементов, ограничены 32 битами, а не полными 64 битами int. Диапазон значений составляет от -2^32 до 2^32 - 1, т.е. от -2147483648 до 2147483647.

Свойства

bool

allow_search

true

bool

hide_on_checkable_item_selection

true

bool

hide_on_item_selection

true

bool

hide_on_state_item_selection

false

int

item_count

0

bool

prefer_native_menu

false

bool

shrink_height

true

bool

shrink_width

true

float

submenu_popup_delay

0.2

SystemMenus

system_menu_id

0

bool

transparent

true (overrides Window)

bool

transparent_bg

true (overrides Viewport)

Методы

bool

activate_item_by_event(event: InputEvent, for_global_only: bool = false)

void

add_check_item(label: String, id: int = -1, accel: Key = 0)

void

add_check_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false)

void

add_icon_check_item(texture: Texture2D, label: String, id: int = -1, accel: Key = 0)

void

add_icon_check_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false)

void

add_icon_item(texture: Texture2D, label: String, id: int = -1, accel: Key = 0)

void

add_icon_radio_check_item(texture: Texture2D, label: String, id: int = -1, accel: Key = 0)

void

add_icon_radio_check_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false)

void

add_icon_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false, allow_echo: bool = false)

void

add_item(label: String, id: int = -1, accel: Key = 0)

void

add_multistate_item(label: String, max_states: int, default_state: int = 0, id: int = -1, accel: Key = 0)

void

add_radio_check_item(label: String, id: int = -1, accel: Key = 0)

void

add_radio_check_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false)

void

add_separator(label: String = "", id: int = -1)

void

add_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false, allow_echo: bool = false)

void

add_submenu_item(label: String, submenu: String, id: int = -1)

void

add_submenu_node_item(label: String, submenu: PopupMenu, id: int = -1)

void

clear(free_submenus: bool = false)

int

get_focused_item() const

Key

get_item_accelerator(index: int) const

AutoTranslateMode

get_item_auto_translate_mode(index: int) const

Texture2D

get_item_icon(index: int) const

int

get_item_icon_max_width(index: int) const

Color

get_item_icon_modulate(index: int) const

int

get_item_id(index: int) const

int

get_item_indent(index: int) const

int

get_item_index(id: int) const

String

get_item_language(index: int) const

Variant

get_item_metadata(index: int) const

int

get_item_multistate(index: int) const

int

get_item_multistate_max(index: int) const

Shortcut

get_item_shortcut(index: int) const

String

get_item_submenu(index: int) const

PopupMenu

get_item_submenu_node(index: int) const

String

get_item_text(index: int) const

TextDirection

get_item_text_direction(index: int) const

String

get_item_tooltip(index: int) const

bool

is_item_checkable(index: int) const

bool

is_item_checked(index: int) const

bool

is_item_disabled(index: int) const

bool

is_item_radio_checkable(index: int) const

bool

is_item_separator(index: int) const

bool

is_item_shortcut_disabled(index: int) const

bool

is_native_menu() const

bool

is_system_menu() const

void

remove_item(index: int)

void

scroll_to_item(index: int)

void

set_focused_item(index: int)

void

set_item_accelerator(index: int, accel: Key)

void

set_item_as_checkable(index: int, enable: bool)

void

set_item_as_radio_checkable(index: int, enable: bool)

void

set_item_as_separator(index: int, enable: bool)

void

set_item_auto_translate_mode(index: int, mode: AutoTranslateMode)

void

set_item_checked(index: int, checked: bool)

void

set_item_disabled(index: int, disabled: bool)

void

set_item_icon(index: int, icon: Texture2D)

void

set_item_icon_max_width(index: int, width: int)

void

set_item_icon_modulate(index: int, modulate: Color)

void

set_item_id(index: int, id: int)

void

set_item_indent(index: int, indent: int)

void

set_item_language(index: int, language: String)

void

set_item_metadata(index: int, metadata: Variant)

void

set_item_multistate(index: int, state: int)

void

set_item_multistate_max(index: int, max_states: int)

void

set_item_shortcut(index: int, shortcut: Shortcut, global: bool = false)

void

set_item_shortcut_disabled(index: int, disabled: bool)

void

set_item_submenu(index: int, submenu: String)

void

set_item_submenu_node(index: int, submenu: PopupMenu)

void

set_item_text(index: int, text: String)

void

set_item_text_direction(index: int, direction: TextDirection)

void

set_item_tooltip(index: int, tooltip: String)

void

toggle_item_checked(index: int)

void

toggle_item_multistate(index: int)

Свойства темы

Color

font_accelerator_color

Color(0.7, 0.7, 0.7, 0.8)

Color

font_color

Color(0.875, 0.875, 0.875, 1)

Color

font_disabled_color

Color(0.4, 0.4, 0.4, 0.8)

Color

font_hover_color

Color(0.875, 0.875, 0.875, 1)

Color

font_outline_color

Color(0, 0, 0, 1)

Color

font_separator_color

Color(0.875, 0.875, 0.875, 1)

Color

font_separator_outline_color

Color(0, 0, 0, 1)

int

gutter_compact

1

int

h_separation

4

int

icon_max_width

0

int

indent

10

int

item_end_padding

2

int

item_start_padding

2

int

outline_size

0

int

separator_outline_size

0

int

v_separation

4

Font

font

Font

font_separator

int

font_separator_size

int

font_size

Texture2D

checked

Texture2D

checked_disabled

Texture2D

radio_checked

Texture2D

radio_checked_disabled

Texture2D

radio_unchecked

Texture2D

radio_unchecked_disabled

Texture2D

submenu

Texture2D

submenu_mirrored

Texture2D

unchecked

Texture2D

unchecked_disabled

StyleBox

hover

StyleBox

labeled_separator_left

StyleBox

labeled_separator_right

StyleBox

panel

StyleBox

separator


Сигналы

id_focused(id: int) 🔗

Вызывается, когда пользователь перешел к элементу с некоторым id с помощью действия ввода ProjectSettings.input/ui_up или ProjectSettings.input/ui_down.


id_pressed(id: int) 🔗

Вызывается при нажатии на элемент с определенным id. Также генерируется при активации его акселератора в macOS.

Примечание: Если id отрицательное (либо явно, либо из-за переполнения), будет возвращен соответствующий индекс.


index_pressed(index: int) 🔗

Вызывается при нажатии на элемент с индексом index. Также генерируется при активации соответствующей комбинации клавиш в macOS.


menu_changed() 🔗

Генерируется при добавлении, изменении или удалении любого элемента.


Описания свойств

  • void set_allow_search(value: bool)

  • bool get_allow_search()

Если true, позволяет осуществлять навигацию по PopupMenu с помощью буквенных клавиш.


bool hide_on_checkable_item_selection = true 🔗

  • void set_hide_on_checkable_item_selection(value: bool)

  • bool is_hide_on_checkable_item_selection()

Если true, скрывает PopupMenu при выборе флажка или переключателя.


bool hide_on_item_selection = true 🔗

  • void set_hide_on_item_selection(value: bool)

  • bool is_hide_on_item_selection()

Если true, скрывает PopupMenu при выборе элемента.


bool hide_on_state_item_selection = false 🔗

  • void set_hide_on_state_item_selection(value: bool)

  • bool is_hide_on_state_item_selection()

Если true, скрывает PopupMenu при выборе элемента состояния.


int item_count = 0 🔗

  • void set_item_count(value: int)

  • int get_item_count()

Количество элементов в списке на данный момент.


bool prefer_native_menu = false 🔗

  • void set_prefer_native_menu(value: bool)

  • bool is_prefer_native_menu()

Если true, MenuBar будет использовать собственное меню, если поддерживается.

Примечание: Если PopupMenu связан с StatusIndicator, MenuBar или другим элементом PopupMenu, он может использовать собственное меню независимо от этого свойства, используйте is_native_menu(), чтобы проверить это.


bool shrink_height = true 🔗

  • void set_shrink_height(value: bool)

  • bool get_shrink_height()

If true, shrinks PopupMenu to minimum height when it's shown.


bool shrink_width = true 🔗

  • void set_shrink_width(value: bool)

  • bool get_shrink_width()

If true, shrinks PopupMenu to minimum width when it's shown.


float submenu_popup_delay = 0.2 🔗

  • void set_submenu_popup_delay(value: float)

  • float get_submenu_popup_delay()

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

Примечание: Если курсор мыши выходит из пункта подменю с открытым подменю и переходит в другой пункт подменю, время задержки всплывающего окна подменю зависит от направления движения курсора мыши к открытому подменю. Если курсор мыши движется к подменю, открытое подменю будет ждать приблизительно 0.5 секунды, прежде чем закрыться, что позволит открыться находящемуся подменю. Эта дополнительная задержка дает курсору время переместиться к открытому подменю, не закрывая его преждевременно. Если курсор мыши не движется к открытому подменю, например, вниз, открытое подменю закроется немедленно.


SystemMenus system_menu_id = 0 🔗

Если установлено одно из значений SystemMenus, это PopupMenu привязано к специальному системному меню. Только одно PopupMenu может быть привязано к каждому специальному меню одновременно.


Описания метода

bool activate_item_by_event(event: InputEvent, for_global_only: bool = false) 🔗

Проверяет предоставленное event на соответствие сочетаниям клавиш и ускорителям PopupMenu и активирует первый элемент с соответствующими событиями. Если for_global_only равно true, будут вызваны только сочетания клавиш и ускорители с global, установленными на true.

Возвращает true, если элемент был успешно активирован.

Примечание: Некоторые Control, такие как MenuButton, будут вызывать этот метод автоматически.


void add_check_item(label: String, id: int = -1, accel: Key = 0) 🔗

Добавляет новый отмечаемый элемент с текстом label.

id может быть указан дополнительно, а также ускоритель (accel). Если id не указан, он будет создан из индекса. Если accel не указан, то элементу будет назначено значение по умолчанию 0 (соответствующее @GlobalScope.KEY_NONE) (что означает, что у него не будет ускорителя). См. get_item_accelerator() для получения дополнительной информации об ускорителях.

Примечание: Отмечаемые элементы просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.


void add_check_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false) 🔗

Добавляет новый отмечаемый элемент и назначает ему указанный Shortcut. Устанавливает метку флажка на имя Shortcut.

id может быть указан по желанию. Если id не указан, он будет создан из индекса.

Примечание: Отмечаемые элементы просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.


void add_icon_check_item(texture: Texture2D, label: String, id: int = -1, accel: Key = 0) 🔗

Добавляет новый отмечаемый элемент с текстом label и значком texture.

id может быть указан дополнительно, а также ускоритель (accel). Если id не указан, он будет создан из индекса. Если accel не указан, то элементу будет назначено значение по умолчанию 0 (соответствующее @GlobalScope.KEY_NONE) (что означает, что у него не будет ускорителя). См. get_item_accelerator() для получения дополнительной информации об ускорителях.

Примечание: Отмечаемые элементы просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.


void add_icon_check_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false) 🔗

Добавляет новый отмечаемый элемент и назначает ему указанный Shortcut и значок texture. Устанавливает метку флажка на имя Shortcut.

id может быть указан по желанию. Если id не указан, он будет создан из индекса.

Примечание: Отмечаемые элементы просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.


void add_icon_item(texture: Texture2D, label: String, id: int = -1, accel: Key = 0) 🔗

Добавляет новый элемент с текстом label и значком texture.

id может быть указан дополнительно, а также ускоритель (accel). Если id не указан, он будет создан из индекса. Если accel не указан, то элементу будет назначено значение по умолчанию 0 (соответствующее @GlobalScope.KEY_NONE) (что означает, что у него не будет ускорителя). Подробнее об ускорителях см. get_item_accelerator().


void add_icon_radio_check_item(texture: Texture2D, label: String, id: int = -1, accel: Key = 0) 🔗

То же, что и add_icon_check_item(), но использует кнопку-переключатель.


void add_icon_radio_check_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false) 🔗

То же, что и add_icon_check_shortcut(), но использует кнопку-переключатель.


void add_icon_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false, allow_echo: bool = false) 🔗

Добавляет новый элемент и назначает ему указанный Shortcut и значок texture. Устанавливает метку флажка на имя Shortcut.

id может быть указан по желанию. Если id не указан, он будет создан из индекса.

Если allow_echo равен true, ярлык может быть активирован с помощью событий echo (эхо, подражатель).


void add_item(label: String, id: int = -1, accel: Key = 0) 🔗

Добавляет новый элемент с текстом label.

id может быть указан дополнительно, а также ускоритель (accel). Если id не указан, он будет создан из индекса. Если accel не указан, то элементу будет назначено значение по умолчанию 0 (соответствующее @GlobalScope.KEY_NONE) (что означает, что у него не будет ускорителя). Подробнее об ускорителях см. get_item_accelerator().

Примечание: Указанный id используется только в сигналах id_pressed и id_focused. Он не связан с аргументами index, например, в set_item_checked().


void add_multistate_item(label: String, max_states: int, default_state: int = 0, id: int = -1, accel: Key = 0) 🔗

Добавляет новый элемент с несколькими состояниями с текстом label.

В отличие от обычных бинарных элементов, элементы с несколькими состояниями могут иметь более двух состояний, как определено max_states. Значение по умолчанию определяется default_state.

id может быть предоставлен дополнительно, а также ускоритель (accel). Если id не указан, он будет создан из индекса. Если accel не указан, то элементу будет назначено значение по умолчанию 0 (соответствующее @GlobalScope.KEY_NONE) (что означает, что у него не будет ускорителя). См. get_item_accelerator() для получения дополнительной информации об ускорителях.

func _ready():
    add_multistate_item("Item", 3, 0)

    index_pressed.connect(func(index: int):
            toggle_item_multistate(index)
            match get_item_multistate(index):
                0:
                    print("Первое состояние")
                1:
                    print("Второе состояние")
                2:
                    print("Третье состояние")
        )

Примечание: Элементы с несколькими состояниями не обновляют свое состояние автоматически и это должно быть сделано вручную. См. toggle_item_multistate(), set_item_multistate() и get_item_multistate() для получения дополнительной информации о том, как управлять этим.


void add_radio_check_item(label: String, id: int = -1, accel: Key = 0) 🔗

Добавляет новую кнопку выбора радио с текстом label.

id может быть необязательно указан, а также ускоритель (accel). Если id не указан, он будет создан из индекса. Если accel не указан, то элементу будет назначено значение по умолчанию 0 (соответствующее @GlobalScope.KEY_NONE) (что означает, что у него не будет ускорителя). См. get_item_accelerator() для получения дополнительной информации об ускорителях.

Примечание: Отмечаемые элементы просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.


void add_radio_check_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false) 🔗

Добавляет новую кнопку-переключатель и назначает ей Shortcut. Устанавливает метку флажка на имя Shortcut.

Можно указать id по желанию. Если id не указан, он будет создан из индекса.

Примечание: Отмечаемые элементы просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.


void add_separator(label: String = "", id: int = -1) 🔗

Добавляет разделитель между элементами. Разделители также занимают индекс, который можно задать с помощью параметра id.

label может быть дополнительно предоставлен, который будет отображаться в центре разделителя.


void add_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false, allow_echo: bool = false) 🔗

Добавляет Shortcut.

id может быть предоставлен по желанию. Если id не предоставлен, он будет создан из индекса.

Если allow_echo равен true, ярлык может быть активирован с помощью событий echo.


void add_submenu_item(label: String, submenu: String, id: int = -1) 🔗

Устарело: Prefer using add_submenu_node_item() instead.

Добавляет элемент, который будет действовать как подменю родительского узла PopupMenu при щелчке. Аргумент submenu должен быть именем существующего PopupMenu, который был добавлен как дочерний к этому узлу. Это подменю будет показано при щелчке элемента, наведении на него достаточно долго или активации с помощью действий ввода ui_select или ui_right.

id может быть необязательно указан. Если id не указан, он будет создан из индекса.


void add_submenu_node_item(label: String, submenu: PopupMenu, id: int = -1) 🔗

Добавляет элемент, который будет действовать как подменю родительского узла PopupMenu при щелчке. Это подменю будет показано, когда элемент щелкают, наводят достаточно долго или активируют с помощью действий ввода ui_select или ui_right.

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

При необходимости можно указать id. Если id не указан, он будет создан из индекса.


void clear(free_submenus: bool = false) 🔗

Удаляет все элементы из PopupMenu. Если free_submenus равен true, узлы подменю автоматически освобождаются.


int get_focused_item() const 🔗

Возвращает индекс текущего сфокусированного элемента. Возвращает -1, если ни один элемент не сфокусирован.


Key get_item_accelerator(index: int) const 🔗

Возвращает акселератор элемента по указанному index. Акселератор (ускоритель) — это сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. Возвращаемое значение — целое число, которое обычно является комбинацией KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A). Если для указанного index акселератор не определен, get_item_accelerator() возвращает 0 (соответствует @GlobalScope.KEY_NONE).


AutoTranslateMode get_item_auto_translate_mode(index: int) const 🔗

Возвращает режим автоматического перевода элемента по указанному index.


Texture2D get_item_icon(index: int) const 🔗

Возвращает значок элемента по указанному index.


int get_item_icon_max_width(index: int) const 🔗

Возвращает максимально допустимую ширину значка для элемента по указанному index.


Color get_item_icon_modulate(index: int) const 🔗

Возвращает Color, модулирующий значок элемента по указанному index.


int get_item_id(index: int) const 🔗

Возвращает идентификатор элемента по заданному index. id можно назначить вручную, а индекс — нет.


int get_item_indent(index: int) const 🔗

Возвращает горизонтальное смещение элемента по указанному index.


int get_item_index(id: int) const 🔗

Возвращает индекс элемента, содержащего указанный id. Индекс автоматически назначается каждому элементу движком и не может быть установлен вручную.


String get_item_language(index: int) const 🔗

Возвращает код языка текста элемента.


Variant get_item_metadata(index: int) const 🔗

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


int get_item_multistate(index: int) const 🔗

Возвращает состояние элемента по указанному index.


int get_item_multistate_max(index: int) const 🔗

Возвращает максимальные состояния элемента по указанному index.


Shortcut get_item_shortcut(index: int) const 🔗

Возвращает Shortcut, связанный с элементом по указанному index.


String get_item_submenu(index: int) const 🔗

Устарело: Prefer using get_item_submenu_node() instead.

Возвращает имя подменю элемента по указанному index. См. add_submenu_item() для получения дополнительной информации о том, как добавить подменю.


PopupMenu get_item_submenu_node(index: int) const 🔗

Возвращает подменю элемента по указанному index или null, если подменю не было добавлено. См. add_submenu_node_item() для получения дополнительной информации о том, как добавить подменю.


String get_item_text(index: int) const 🔗

Возвращает текст элемента по указанному index.


TextDirection get_item_text_direction(index: int) const 🔗

Возвращает базовое направление написания текста элемента.


String get_item_tooltip(index: int) const 🔗

Возвращает подсказку, связанную с элементом по указанному index.


bool is_item_checkable(index: int) const 🔗

Возвращает true, если элемент с указанным index можно отметить каким-либо образом, например, если у него есть флажок или переключатель.

Примечание: Отмечаемые элементы просто отображают галочку или переключатель, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную.


bool is_item_checked(index: int) const 🔗

Возвращает true, если элемент с указанным index отмечен.


bool is_item_disabled(index: int) const 🔗

Возвращает true, если элемент с указанным index отключен. Когда он отключен, его нельзя выбрать или вызвать его действие.

См. set_item_disabled() для получения дополнительной информации о том, как отключить элемент.


bool is_item_radio_checkable(index: int) const 🔗

Возвращает true, если элемент с указанным index имеет возможность отмечать в стиле радиокнопки.

Примечание: Это чисто косметическое действие; необходимо добавить логику для отметки/снятия отметки элементов в радио-группах.


bool is_item_separator(index: int) const 🔗

Возвращает true, если элемент является разделителем. Если это так, он будет отображен в виде линии. См. add_separator() для получения дополнительной информации о том, как добавить разделитель.


bool is_item_shortcut_disabled(index: int) const 🔗

Возвращает true, если ярлык указанного элемента отключен.


bool is_native_menu() const 🔗

Возвращает true, если системное собственное меню поддерживается и в данный момент используется этим PopupMenu.


bool is_system_menu() const 🔗

Возвращает true, если меню привязано к специальному системному меню.


void remove_item(index: int) 🔗

Удаляет элемент с указанным index из меню.

Примечание: Индексы элементов после удаленного элемента будут смещены на единицу.


void scroll_to_item(index: int) 🔗

Перемещает вид прокрутки, делая видимым элемент с указанным index.


void set_focused_item(index: int) 🔗

Устанавливает текущий сфокусированный элемент как заданный index.

Передача -1 в качестве индекса делает так, что ни один элемент не будет сфокусирован.


void set_item_accelerator(index: int, accel: Key) 🔗

Устанавливает акселератор элемента по указанному index. Акселератор (ускоритель) — это сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accel — это, как правило, комбинация KeyModifierMask и Key с использованием побитового ИЛИ, например, KEY_MASK_CTRL | KEY_A (Ctrl + A).


void set_item_as_checkable(index: int, enable: bool) 🔗

Устанавливает, есть ли у элемента с указанным index флажок. Если false, задает тип элемента как обычный текст.

Примечание: Отмечаемые элементы просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную.


void set_item_as_radio_checkable(index: int, enable: bool) 🔗

Устанавливает тип элемента в указанном index на радиокнопку. Если false, тип элемента устанавливается в виде обычного текста.


void set_item_as_separator(index: int, enable: bool) 🔗

Отметить элемент с указанным index как разделитель, что означает, что он будет отображаться как строка. Если false, устанавливается тип элемента в виде обычного текста.


void set_item_auto_translate_mode(index: int, mode: AutoTranslateMode) 🔗

Устанавливает режим автоматического перевода элемента по указанному index.

Элементы используют Node.AUTO_TRANSLATE_MODE_INHERIT по умолчанию, которая использует тот же режим автоматического перевода, что и само PopupMenu.


void set_item_checked(index: int, checked: bool) 🔗

Устанавливает состояние проверки элемента по указанному index.


void set_item_disabled(index: int, disabled: bool) 🔗

Включает/отключает элемент с указанным index. Когда он отключен, его нельзя выбрать и его действие нельзя вызвать.


void set_item_icon(index: int, icon: Texture2D) 🔗

Заменяет значок Texture2D элемента с указанным index.


void set_item_icon_max_width(index: int, width: int) 🔗

Устанавливает максимально допустимую ширину значка для элемента с указанным index. Это ограничение применяется поверх размера значка по умолчанию и поверх icon_max_width. Высота регулируется в соответствии с соотношением сторон значка.


void set_item_icon_modulate(index: int, modulate: Color) 🔗

Устанавливает модулирующий цвет Color значка элемента по указанному index.


void set_item_id(index: int, id: int) 🔗

Устанавливает id элемента по указанному index.

id используется в сигналах id_pressed и id_focused.


void set_item_indent(index: int, indent: int) 🔗

Устанавливает горизонтальное смещение элемента по указанному index.


void set_item_language(index: int, language: String) 🔗

Устанавливает языковой код текста для элемента по заданному индексу равным language. Это используется для алгоритмов переноса строк и формирования текста. Если language пусто, используется текущая локаль.


void set_item_metadata(index: int, metadata: Variant) 🔗

Устанавливает метаданные элемента, которые могут быть любого типа. Позже вы можете получить их с помощью get_item_metadata(), который обеспечивает простой способ назначения контекстных данных элементам.


void set_item_multistate(index: int, state: int) 🔗

Устанавливает состояние элемента с несколькими состояниями. Подробности см. в add_multistate_item().


void set_item_multistate_max(index: int, max_states: int) 🔗

Устанавливает максимальные состояния элемента с несколькими состояниями. Подробности см. в add_multistate_item().


void set_item_shortcut(index: int, shortcut: Shortcut, global: bool = false) 🔗

Устанавливает Shortcut для элемента с указанным index.


void set_item_shortcut_disabled(index: int, disabled: bool) 🔗

Отключает Shortcut элемента с указанным index.


void set_item_submenu(index: int, submenu: String) 🔗

Устарело: Prefer using set_item_submenu_node() instead.

Устанавливает подменю элемента с указанным index. Подменю — это имя дочернего узла PopupMenu, который будет показан при щелчке по элементу.


void set_item_submenu_node(index: int, submenu: PopupMenu) 🔗

Устанавливает подменю элемента с указанным index. Подменю — это узел PopupMenu, который будет показан при щелчке по элементу. Он должен быть либо дочерним элементом этого PopupMenu, либо не иметь родителя (в этом случае он будет автоматически добавлен как дочерний элемент). Если у всплывающего элемента submenu есть другой родитель, этот метод завершится ошибкой.


void set_item_text(index: int, text: String) 🔗

Устанавливает текст элемента по указанному index.


void set_item_text_direction(index: int, direction: TextDirection) 🔗

Устанавливает базовое направление написания текста элемента.


void set_item_tooltip(index: int, tooltip: String) 🔗

Устанавливает подсказку String для элемента с указанным index.


void toggle_item_checked(index: int) 🔗

Переключает состояние проверки элемента по указанному index.


void toggle_item_multistate(index: int) 🔗

Перейти к следующему состоянию элемента с несколькими состояниями. Подробности см. в add_multistate_item().


Описания свойств темы

Color font_accelerator_color = Color(0.7, 0.7, 0.7, 0.8) 🔗

Текст Color, используемый для ярлыков и ускорителей, которые отображаются рядом с именем пункта меню при определении. См. get_item_accelerator() для получения дополнительной информации об ускорителях (accelerators).


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

Текст по умолчанию Color для названий пунктов меню.


Color font_disabled_color = Color(0.4, 0.4, 0.4, 0.8) 🔗

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


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

Color используется для наведенного текста.


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

Оттенок контура текста пункта меню.


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

Color используется для текста маркированных разделителей. См. add_separator().


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

Оттенок контура текста маркированного разделителя.


int gutter_compact = 1 🔗

Если значение не равно 0, то, по возможности, область с иконками будет объединена с областью с флажками. Это логическое значение.


int h_separation = 4 🔗

Горизонтальное пространство между элементами.


int icon_max_width = 0 🔗

Максимально допустимая ширина значка элемента. Это ограничение применяется поверх размера значка по умолчанию, но до значения, установленного с помощью set_item_icon_max_width(). Высота регулируется в соответствии с соотношением значка.


int indent = 10 🔗

Ширина одного уровня отступа.


int item_end_padding = 2 🔗

Горизонтальный отступ справа от элементов (или слева в макете с написанием справа налево).


int item_start_padding = 2 🔗

Горизонтальный отступ слева от элементов (или справа в макете с написанием справа налево).


int outline_size = 0 🔗

Размер контура текста элемента.

Примечание: При использовании шрифта с включенным FontFile.multichannel_signed_distance_field его FontFile.msdf_pixel_range должен быть установлен как минимум в дважды раза больше значения outline_size, чтобы контур выглядел правильно. В противном случае контур может оказаться обрезанным раньше, чем предполагалось.


int separator_outline_size = 0 🔗

Размер контура текста маркированного разделителя.


int v_separation = 4 🔗

Вертикальное расстояние между каждым пунктом меню.


Font font 🔗

Font используемый для пунктов меню.


Font font_separator 🔗

Font, используемый для маркированного разделителя.


int font_separator_size 🔗

Размер шрифта маркированного разделителя.


int font_size 🔗

Размер шрифта пунктов меню.


Texture2D checked 🔗

Значок Texture2D для отмеченных флажками элементов.


Texture2D checked_disabled 🔗

Значок Texture2D для отмеченных флажками элементов, когда они отключены.


Texture2D radio_checked 🔗

Значок Texture2D для отмеченных элементов переключателя.


Texture2D radio_checked_disabled 🔗

Значок Texture2D для отмеченных элементов переключателя, когда они отключены.


Texture2D radio_unchecked 🔗

Значок Texture2D для неотмеченных элементов переключателя.


Texture2D radio_unchecked_disabled 🔗

Значок Texture2D для неотмеченных элементов переключателя, когда они отключены.


Texture2D submenu 🔗

Значок Texture2D для стрелки подменю (для макетов слева направо).


Texture2D submenu_mirrored 🔗

Значок Texture2D для стрелки подменю (для макетов справа налево).


Texture2D unchecked 🔗

Значок Texture2D для неотмеченных флажков.


Texture2D unchecked_disabled 🔗

Значок Texture2D для неотмеченных элементов флажка, когда они отключены.


StyleBox hover 🔗

StyleBox отображается при наведении курсора на элемент PopupMenu.


StyleBox labeled_separator_left 🔗

StyleBox для левой стороны маркированного разделителя. См. add_separator().


StyleBox labeled_separator_right 🔗

StyleBox для правой стороны маркированного разделителя. См. add_separator().


StyleBox panel 🔗

StyleBox для фоновой панели.


StyleBox separator 🔗

StyleBox используется для разделителей. См. add_separator().