Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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

Примітка: Значення ідентифікаторів, що використовуються для елементів, обмежені 32 бітами, а не повними 64 бітами int. Це має діапазон від -2^32 до 2^32 - 1, тобто від -2147483648 до 2147483647.

Властивості

bool

allow_search

true

DefaultCanvasItemTextureFilter

canvas_item_default_texture_filter

4 (overrides Viewport)

DefaultCanvasItemTextureRepeat

canvas_item_default_texture_repeat

3 (overrides Viewport)

bool

hide_on_checkable_item_selection

true

bool

hide_on_item_selection

true

bool

hide_on_state_item_selection

false

int

item_count

0

int

item_{index}/checkable

0

bool

item_{index}/checked

false

bool

item_{index}/disabled

false

Texture2D

item_{index}/icon

int

item_{index}/id

0

bool

item_{index}/separator

false

String

item_{index}/text

""

bool

prefer_native_menu

false

bool

search_bar_enabled

false

bool

search_bar_fuzzy_search_enabled

true

int

search_bar_fuzzy_search_max_misses

2

int

search_bar_min_item_count

0

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_index(index: int, target_index: 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

search_bar_separation

4

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

search

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

Кількість елементів в даний час в списку.


int item_{index}/checkable = 0 🔗

Тип елемента, який можна позначити галочкою, для елемента з індексом index.

Примітка: index — це значення в діапазоні 0 .. item_count - 1.


bool item_{index}/checked = false 🔗

Якщо true, перевіряється елемент під index.

Примітка: index — це значення в діапазоні 0 .. item_count - 1.


bool item_{index}/disabled = false 🔗

Якщо true, елемент під index вимкнено.

Примітка: index — це значення в діапазоні 0 .. item_count - 1.


Texture2D item_{index}/icon 🔗

Піктограма елемента під номером index.

Примітка: index — це значення в діапазоні 0 .. item_count - 1.


int item_{index}/id = 0 🔗

Ідентифікатор елемента на index.

Примітка: index — це значення в діапазоні 0 .. item_count - 1.


bool item_{index}/separator = false 🔗

Якщо true, елемент під index є роздільником.

Примітка: index — це значення в діапазоні 0 .. item_count - 1.


String item_{index}/text = "" 🔗

Текст елемента за адресою index.

Примітка: index — це значення в діапазоні 0 .. item_count - 1.


bool prefer_native_menu = false 🔗

  • void set_prefer_native_menu(value: bool)

  • bool is_prefer_native_menu()

Якщо true, MenuBar буде використовувати рідне меню при підтриманні.

Note: Якщо PopupMenu зв'язується з StatusIndicator, MenuBar, або інший PopupMenu пункт, він може використовувати рідне меню незалежно від цього майна, використовувати is_native_menu() для його перевірки.


bool search_bar_enabled = false 🔗

  • void set_search_bar_enabled(value: bool)

  • bool is_search_bar_enabled()

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

Примітка: Якщо ця опція увімкнена, значення allow_search ігнорується.


bool search_bar_fuzzy_search_enabled = true 🔗

  • void set_search_bar_fuzzy_search_enabled(value: bool)

  • bool is_search_bar_fuzzy_search_enabled()

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

Використовуйте search_bar_fuzzy_search_max_misses, щоб встановити максимальну кількість допустимих невідповідностей у результатах пошуку.


int search_bar_fuzzy_search_max_misses = 2 🔗

  • void set_search_bar_fuzzy_search_max_misses(value: int)

  • int get_search_bar_fuzzy_search_max_misses()

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


int search_bar_min_item_count = 0 🔗

  • void set_search_bar_min_item_count(value: int)

  • int get_search_bar_min_item_count()

Встановлює мінімальну кількість елементів, необхідну для відображення панелі пошуку. Щоб це спрацювало, значення search_bar_enabled має дорівнювати true. Елементи-роздільники не враховуються.


bool shrink_height = true 🔗

  • void set_shrink_height(value: bool)

  • bool get_shrink_height()

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


bool shrink_width = true 🔗

  • void set_shrink_width(value: bool)

  • bool get_shrink_width()

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


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

Додавання нового елемента з текстом пам'ячим міткою та іконкою texture.

id може бути додатково, а також акселератор (accel). Якщо немає id, він буде створений з індексу. Якщо немає accel, то значення за замовчуванням 0 (відповідно до @GlobalScope.KEY_NONE) буде призначено до пункту (що означає, що він не має ніякого прискорювача). Детальніше про акселератори.


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 і іконку текстура. Встановлює етикетку прапорця на назву Shortcut.

id може бути додатково. Якщо немає id, він буде створений з індексу.

Якщо allow_echo є true, то ярлик можна активувати з луновими подіями.


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

Додати новий елемент з текстом label.

id може бути додатково, а також акселератор (accel). Якщо немає id, він буде створений з індексу. Якщо немає accel, то значення за замовчуванням 0 (відповідно до @GlobalScope.KEY_NONE) буде призначено до пункту (що означає, що він не має ніякого прискорювача). Детальніше про акселератори.

Примітка: Надана id використовується тільки в id_pressed і id_focused сигнали. Це не пов'язано з index аргументи в e.g. 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("Елемент", 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, ярлик можна активувати з луновими подіями.


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 popup є інший батько, цей метод не буде.

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. Акселератор - це клавішний ярлик, який можна натиснути, щоб запустити меню, навіть якщо це не відкрито. Значення повернення є ціле, яке, як правило, поєднання KeyModifierMasks і Keys using bitwise OR, такі як KEY_MASK_CTRL KEY_A (Ctrl + A). Якщо не визначено акселератор для вказаного index, get_item_accelerator() повертає 0 (constant @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.


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, якщо елемент є сепаратором. Якщо це буде показано як рядок. Детальніше про те, як додати сепаратор.


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, як правило, поєднання KeyModifierMasks and Keys using bitwise OR: 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) 🔗

Встановлює модулюючу іконку елемента на даній 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_index(index: int, target_index: int) 🔗

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

Примітка: Індекси всіх елементів між індексом index та індексом target_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 popup є інший батько, цей метод не буде.


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 використовується для ярликів та акселераторів, які відображають назву меню при визначенні. Детальніше про акселератори.


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 🔗

Горизонтальний натяг з правом предметів (або зліва, в макеті RTL).


int item_start_padding = 2 🔗

Горизонтальний наповнювач зліва від елементів (або праворуч, в макеті RTL).


int outline_size = 0 🔗

Розмір контуру пункту.

Примітка: Якщо за допомогою шрифту FontFile.multiканал_signed_distance_field ввімкнено, його FontFile.msdf_pixel_range необхідно встановити принаймні twice значення index_size для позначення, що дає змогу виглядати правильно. В іншому випадку контур може з'явитися, щоб зрізати раніше, ніж призначений.


int search_bar_separation = 4 🔗

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


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 — піктограма для панелі пошуку.


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