OptionButton
继承: Button < BaseButton < Control < CanvasItem < Node < Object
按下时弹出下拉菜单的按钮。
描述
OptionButton 是一种按下时弹出下拉菜单的按钮。选中的菜单项会成为“当前”菜单项,作为按钮文本显示。
另见 BaseButton,其中包含与此节点相关联的通用属性和方法。
注意:菜单项的 ID 限制为带符号 32 位整数,并不是完整的 64 位 int。取值范围为 -2^31 到 2^31 - 1,即 -2147483648 到 2147483647。
注意:Button.text 和 Button.icon 属性会根据当前所选菜单项自动设置。不应该手动更改。
属性
action_mode |
|
|
alignment |
|
|
|
||
|
||
|
||
|
||
toggle_mode |
|
方法
void |
add_icon_item(texture: Texture2D, label: String, id: int = -1) |
void |
|
void |
add_separator(text: String = "") |
void |
clear() |
get_item_auto_translate_mode(idx: int) const |
|
get_item_icon(idx: int) const |
|
get_item_id(idx: int) const |
|
get_item_index(id: int) const |
|
get_item_metadata(idx: int) const |
|
get_item_text(idx: int) const |
|
get_item_tooltip(idx: int) const |
|
get_popup() const |
|
get_selectable_item(from_last: bool = false) const |
|
get_selected_id() const |
|
get_selected_metadata() const |
|
has_selectable_items() const |
|
is_item_disabled(idx: int) const |
|
is_item_separator(idx: int) const |
|
void |
remove_item(idx: int) |
void |
|
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 |
主题属性
|
||
|
||
信号
当用户使用 ProjectSettings.input/ui_up 或 ProjectSettings.input/ui_down 输入动作导航到某个项目时发出。所选项目的索引将作为参数传递。
当用户更改当前项时触发。所选项目的索引作为参数传递。
必须启用 allow_reselect 才能重新选中项目。
属性说明
如果为 true,则可以再次选择当前选中的项目。
bool fit_to_longest_item = true 🔗
如果为 true,最小尺寸将由最长项目的文本确定,而不是当前选定的文本。
注意:出于性能原因,在添加、移除或修改项目时,最小尺寸不会立即更新。
可供挑选的菜单项的数量。
int get_selected()
当前选定项的索引,如果没有选定项,则为-1。
方法说明
void add_icon_item(texture: Texture2D, label: String, id: int = -1) 🔗
添加一个菜单项,图标为 texture,文本为 label,(可选)ID 为 id。如果没有传入 id,则会将菜单项的索引用作 ID。新菜单项会追加到末尾。
注意:没有其他菜单项时会选中该菜单项。
void add_item(label: String, id: int = -1) 🔗
添加一个菜单项,文本为 label,(可选)ID 为 id。如果没有传入 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 的菜单项的 ID。
int get_item_index(id: int) const 🔗
返回 ID 为 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。
警告:这是一个必需的内部节点,移除和释放它可能会导致崩溃。如果你想隐藏它或它的任何子节点,请使用其 Window.visible 属性。
int get_selectable_item(from_last: bool = false) const 🔗
返回第一个处于非禁用状态或被标记为分隔符的菜单项的索引。如果 from_last 为 true,则会逆序搜索菜单项。
如果没有找到则返回 -1。
返回所选项目的 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。
移除索引为 idx 的菜单项。
按索引选择项并使其为当前选中项。即使该项是禁用的,这也将起作用。
将 -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 的菜单项的 ID。
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()。
主题属性说明
箭头图标和按钮的右边缘之间的水平空间。
如果不为 0,箭头图标会与字体颜色进行调制。
要绘制在按钮右侧的箭头图标。