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.

OptionButton

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

Кнопка, яка виводить випадання з вибірковими опціями при натисканні.

Опис

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

Див. також BaseButton, який містить загальні властивості та методи, пов’язані з цим вузлом.

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

Примітка: Властивості Button.text та Button.icon встановлюються автоматично на основі вибраного елемента. Їх не слід змінювати вручну.

Властивості

ActionMode

action_mode

0 (overrides BaseButton)

HorizontalAlignment

alignment

0 (overrides Button)

bool

allow_reselect

false

bool

fit_to_longest_item

true

int

item_count

0

bool

popup/item_{index}/disabled

false

Texture2D

popup/item_{index}/icon

int

popup/item_{index}/id

0

bool

popup/item_{index}/separator

false

String

popup/item_{index}/text

""

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

int

selected

-1

bool

toggle_mode

true (overrides BaseButton)

Методи

void

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

void

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

void

add_separator(text: String = "")

void

clear()

AutoTranslateMode

get_item_auto_translate_mode(idx: int) const

Texture2D

get_item_icon(idx: int) const

int

get_item_id(idx: int) const

int

get_item_index(id: int) const

Variant

get_item_metadata(idx: int) const

String

get_item_text(idx: int) const

String

get_item_tooltip(idx: int) const

PopupMenu

get_popup() const

int

get_selectable_item(from_last: bool = false) const

int

get_selected_id() const

Variant

get_selected_metadata() const

bool

has_selectable_items() const

bool

is_item_disabled(idx: int) const

bool

is_item_separator(idx: int) const

void

remove_item(idx: int)

void

select(idx: int)

void

set_disable_shortcuts(disabled: bool)

void

set_item_auto_translate_mode(idx: int, mode: AutoTranslateMode)

void

set_item_disabled(idx: int, disabled: bool)

void

set_item_icon(idx: int, texture: Texture2D)

void

set_item_id(idx: int, id: int)

void

set_item_metadata(idx: int, metadata: Variant)

void

set_item_text(idx: int, text: String)

void

set_item_tooltip(idx: int, tooltip: String)

void

show_popup()

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

int

arrow_margin

4

int

modulate_arrow

0

Texture2D

arrow


Сигнали

item_focused(index: int) 🔗

Повідомлення надсилається, коли користувач переходить до елемента за допомогою дій введення ProjectSettings.input/ui_up або ProjectSettings.input/ui_down. Індекс елемента, на якому встановлено фокус, передається як аргумент.


item_selected(index: int) 🔗

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

allow_reselect повинен бути включений для видалення елемента.


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

bool allow_reselect = false 🔗

  • void set_allow_reselect(value: bool)

  • bool get_allow_reselect()

Якщо true, в даний час вибраний пункт можна вибрати знову.


bool fit_to_longest_item = true 🔗

  • void set_fit_to_longest_item(value: bool)

  • bool is_fit_to_longest_item()

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

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


int item_count = 0 🔗

  • void set_item_count(value: int)

  • int get_item_count()

Кількість елементів для вибору.


bool popup/item_{index}/disabled = false 🔗

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

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


Texture2D popup/item_{index}/icon 🔗

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

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


int popup/item_{index}/id = 0 🔗

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

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


bool popup/item_{index}/separator = false 🔗

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

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


String popup/item_{index}/text = "" 🔗

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

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


bool search_bar_enabled = false 🔗

  • void set_search_bar_enabled(value: bool)

  • bool is_search_bar_enabled()

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


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

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


int selected = -1 🔗

  • int get_selected()

Індекс поточного обраного елемента, або -1, якщо елемент не обрано.


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

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

Додає елемент із значком texture, текстом label та (необов'язково) id. Якщо id не передано, індекс елемента буде використано як його ідентифікатор. Нові елементи додаються в кінці.

Примітка: Елемент буде вибрано, якщо інших елементів немає.


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

Додає елемент з текстом label та (необов'язково) id. Якщо id не передано, індекс елемента буде використано як ідентифікатор елемента. Нові елементи додаються в кінці.

Примітка: Елемент буде вибрано, якщо інших елементів немає.


void add_separator(text: String = "") 🔗

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


void clear() 🔗

Очищає всі елементи в OptionButton.


AutoTranslateMode get_item_auto_translate_mode(idx: int) const 🔗

Повертає режим автоматичного перекладу елемента за індексом idx.


Texture2D get_item_icon(idx: int) const 🔗

Повертає ікону елемента в індексі idx.


int get_item_id(idx: int) const 🔗

Повертає ідентифікатор пункту за індексом idx.


int get_item_index(id: int) const 🔗

Повернення індексу пункту з вказаною парою id.


Variant get_item_metadata(idx: int) const 🔗

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


String get_item_text(idx: int) const 🔗

Повертає текст пункту за індексом idx.


String get_item_tooltip(idx: int) const 🔗

Повертаємо пристрій пункту індексу idx.


PopupMenu get_popup() const 🔗

Повертаємо PopupMenu, що міститься в цій кнопці.

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


int get_selectable_item(from_last: bool = false) const 🔗

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

Повертає -1, якщо елемента не знайдено.


int get_selected_id() const 🔗

Повертає ідентифікатор вибраного елемента, або -1, якщо елемент не обрано.


Variant get_selected_metadata() const 🔗

Отримує метадані вибраного елемента. Метадані для елементів можна встановити за допомогою _item_metadata().


bool has_selectable_items() const 🔗

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


bool is_item_disabled(idx: int) const 🔗

Повертає true, якщо елемент на позиції idx вимкнено.


bool is_item_separator(idx: int) const 🔗

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


void remove_item(idx: int) 🔗

Видаліть пункт в індексі idx.


void select(idx: int) 🔗

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

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


void set_disable_shortcuts(disabled: bool) 🔗

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


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

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

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


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

Встановлює, чи вимкнено пункт індексу idx.

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


void set_item_icon(idx: int, texture: Texture2D) 🔗

Встановлює ікону елемента в індексі idx.


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

Встановлює ідентифікатор елемента в індексі idx.


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

Налаштовує метадані пункту. Метадані можуть бути будь-якого типу і можуть бути використані для зберігання додаткової інформації про елемент, наприклад, зовнішній рядок ID.


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

Встановлює текст елемента в індексі idx.


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

Встановлює інструментарій пункту індексу idx.


void show_popup() 🔗

Налаштовує позицію попуп і співвідношення для OptionButton, потім показує PopupMenu. За допомогою get_popup().popup().


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

int arrow_margin = 4 🔗

Горизонтальний простір між іконкою стріли і правим краєм кнопки.


int modulate_arrow = 0 🔗

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


Texture2D arrow 🔗

Ікона стріли повинна бути намальована на правому кінці кнопки.