OptionButton

继承: Button < BaseButton < Control < Item < Object

按下时弹出带有可选选项的下拉菜单的按钮。

描述

OptionButton是一种按钮,按下时会弹出带有可选择项目的下拉列表。选择的项目成为“当前”项目并显示为按钮文本。

另请参阅BaseButton,其中包含与此节点关联的常用属性和方法。

注意:用于项目的ID值限制为32位,而不是完整的64位int。这具有-2^322^32-1的范围,即-21474836482147483647

注意:Button.textButton.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()

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

主题属性


信号

item_focused(index: int) 🔗

当用户使用ProjectSettings.input/ui_upProjectSettings.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,项目索引将用作项目的ID。新项目附加在最后。


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

添加一个项目,带有文本label和(可选)id。如果没有传递id,项目索引将用作项目的ID。新项目附加在最后。


void add_separator(text: String = "") 🔗

将分隔符添加到项目列表中。分隔符有助于对项目进行分组,并且可以选择给定text标头。分隔符还分配了一个索引,并附加在项目列表的末尾。


void clear() 🔗

清除OptionButton中的所有项目。


Texture2D get_item_icon(idx: int) const 🔗

返回索引idx处项目的图标。


int get_item_id(idx: int) const 🔗

返回indexidx处项目的ID。


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 🔗

返回indexidx处项目的工具提示。


PopupMenu get_popup() const 🔗

返回此按钮中包含的PopupMenu

警告:这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果您希望隐藏它或它的任何子节点,请使用它们的Window.visible属性。


int get_selectable_item(from_last: bool = false) const 🔗

返回第一个未禁用或标记为分隔符的项目的索引。如果from_lasttrue,则将按相反的顺序搜索这些项目。

如果未找到项目,则返回-1


int get_selected_id() const 🔗

返回所选项目的ID,如果未选择项目,则返回-1


Variant get_selected_metadata() const 🔗

获取选定项目的元数据。可以使用set_item_metadata()设置项目的元数据。


bool has_selectable_items() const 🔗

如果此按钮包含至少一个未禁用或标记为分隔符的项目,则返回true


bool is_item_disabled(idx: int) const 🔗

如果索引idx处的项目被禁用,则返回true


bool is_item_separator(idx: int) const 🔗

如果索引idx处的项目被标记为分隔符,则返回true


void remove_item(idx: int) 🔗

删除indexidx处的项目。


void select(idx: int) 🔗

按索引选择一个项目并使其成为当前项目。即使该项目被禁用,这也可以工作。

传递-1作为索引会取消选择任何当前选定的项目。


void set_disable_shortcuts(disabled: bool) 🔗

如果true,则禁用快捷方式并且不能用于触发按钮。


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

设置索引idx处的项目是否被禁用。

禁用项目在下拉列表中的绘制方式不同,用户无法选择。如果当前选定的项目设置为禁用,它将保持选中状态。


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

在indexidx处设置项目的图标。


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

在indexidx处设置项目的ID。


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

设置项目的元数据。元数据可以是任何类型,可用于存储项目的额外信息,例如外部字符串ID。


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

在indexidx处设置项目的文本。


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

在indexidx处设置项目的工具提示。


void show_popup() 🔗

调整OptionButton的弹出位置和大小,然后显示PopupMenu。与使用get_popup(). popup()相比,更喜欢使用此选项。


主题属性说明

int arrow_margin = 4 🔗

箭头图标和按钮右边缘之间的水平空间。


int modulate_arrow = 0 🔗

如果不同于0,箭头图标将被调制为字体颜色。


Texture2D arrow 🔗

要绘制在按钮右端的箭头图标。