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

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

Количество элементов для выбора.


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 🔗

Извлекает метаданные элемента. Метаданные могут быть любого типа и могут использоваться для хранения дополнительной информации об элементе, например внешнего строкового идентификатора.


String get_item_text(idx: int) const 🔗

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


String get_item_tooltip(idx: int) const 🔗

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


PopupMenu get_popup() const 🔗

Возвращает PopupMenu, содержащийся в этой кнопке.

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


int get_selectable_item(from_last: bool = false) const 🔗

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

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


int get_selected_id() const 🔗

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


Variant get_selected_metadata() const 🔗

Получает метаданные выбранного элемента. Метаданные для элементов можно задать с помощью set_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) 🔗

Устанавливает идентификатор (ID) элемента по индексу idx.


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

Устанавливает метаданные элемента. Метаданные могут быть любого типа и могут использоваться для хранения дополнительной информации об элементе, например внешнего строкового идентификатора.


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 🔗

Значок стрелки, который будет нарисован на правом конце кнопки.