PopupMenu

Inherits: Popup < Control < CanvasItem < Node < Object

PopupMenu(弹出菜单)显示选项列表.

描述

PopupMenu是一个显示选项列表的Control.它们在工具栏或上下文菜单中很常用.

属性

bool

allow_search

false

FocusMode

focus_mode

2 (overrides Control)

bool

hide_on_checkable_item_selection

true

bool

hide_on_item_selection

true

bool

hide_on_state_item_selection

false

float

submenu_popup_delay

0.3

方法

void

add_check_item ( String label, int id=-1, int accel=0 )

void

add_check_shortcut ( ShortCut shortcut, int id=-1, bool global=false )

void

add_icon_check_item ( Texture texture, String label, int id=-1, int accel=0 )

void

add_icon_check_shortcut ( Texture texture, ShortCut shortcut, int id=-1, bool global=false )

void

add_icon_item ( Texture texture, String label, int id=-1, int accel=0 )

void

add_icon_radio_check_item ( Texture texture, String label, int id=-1, int accel=0 )

void

add_icon_radio_check_shortcut ( Texture texture, ShortCut shortcut, int id=-1, bool global=false )

void

add_icon_shortcut ( Texture texture, ShortCut shortcut, int id=-1, bool global=false )

void

add_item ( String label, int id=-1, int accel=0 )

void

add_multistate_item ( String label, int max_states, int default_state=0, int id=-1, int accel=0 )

void

add_radio_check_item ( String label, int id=-1, int accel=0 )

void

add_radio_check_shortcut ( ShortCut shortcut, int id=-1, bool global=false )

void

add_separator ( String label=””, int id=-1 )

void

add_shortcut ( ShortCut shortcut, int id=-1, bool global=false )

void

add_submenu_item ( String label, String submenu, int id=-1 )

void

clear ( )

int

get_current_index ( ) const

int

get_item_accelerator ( int idx ) const

int

get_item_count ( ) const

Texture

get_item_icon ( int idx ) const

int

get_item_id ( int idx ) const

int

get_item_index ( int id ) const

Variant

get_item_metadata ( int idx ) const

ShortCut

get_item_shortcut ( int idx ) const

String

get_item_submenu ( int idx ) const

String

get_item_text ( int idx ) const

String

get_item_tooltip ( int idx ) const

bool

is_hide_on_window_lose_focus ( ) const

bool

is_item_checkable ( int idx ) const

bool

is_item_checked ( int idx ) const

bool

is_item_disabled ( int idx ) const

bool

is_item_radio_checkable ( int idx ) const

bool

is_item_separator ( int idx ) const

bool

is_item_shortcut_disabled ( int idx ) const

void

remove_item ( int idx )

void

set_hide_on_window_lose_focus ( bool enable )

void

set_item_accelerator ( int idx, int accel )

void

set_item_as_checkable ( int idx, bool enable )

void

set_item_as_radio_checkable ( int idx, bool enable )

void

set_item_as_separator ( int idx, bool enable )

void

set_item_checked ( int idx, bool checked )

void

set_item_disabled ( int idx, bool disabled )

void

set_item_icon ( int idx, Texture icon )

void

set_item_id ( int idx, int id )

void

set_item_metadata ( int idx, Variant metadata )

void

set_item_multistate ( int idx, int state )

void

set_item_shortcut ( int idx, ShortCut shortcut, bool global=false )

void

set_item_shortcut_disabled ( int idx, bool disabled )

void

set_item_submenu ( int idx, String submenu )

void

set_item_text ( int idx, String text )

void

set_item_tooltip ( int idx, String tooltip )

void

toggle_item_checked ( int idx )

void

toggle_item_multistate ( int idx )

主题属性

Color

font_color

Color( 0.88, 0.88, 0.88, 1 )

Color

font_color_accel

Color( 0.7, 0.7, 0.7, 0.8 )

Color

font_color_disabled

Color( 0.4, 0.4, 0.4, 0.8 )

Color

font_color_hover

Color( 0.88, 0.88, 0.88, 1 )

Color

font_color_separator

Color( 0.88, 0.88, 0.88, 1 )

int

hseparation

4

int

vseparation

4

Font

font

Texture

checked

Texture

radio_checked

Texture

radio_unchecked

Texture

submenu

Texture

unchecked

StyleBox

hover

StyleBox

labeled_separator_left

StyleBox

labeled_separator_right

StyleBox

panel

StyleBox

panel_disabled

StyleBox

separator

信号

  • id_focused ( int id )

当用户使用ui_upui_down操作导航到某个id项时触发。


  • id_pressed ( int id )

当按下某个id的项目或激活其加速器时触发。


  • index_pressed ( int index )

当按下某个index的项或激活其加速器时触发。

属性说明

Default

false

Setter

set_allow_search(value)

Getter

get_allow_search()

如果为true,允许用字母键导航PopupMenu


  • bool hide_on_checkable_item_selection

Default

true

Setter

set_hide_on_checkable_item_selection(value)

Getter

is_hide_on_checkable_item_selection()

如果true,则在选中复选框或单选按钮时隐藏PopupMenu


  • bool hide_on_item_selection

Default

true

Setter

set_hide_on_item_selection(value)

Getter

is_hide_on_item_selection()

如果true,当一个项目被选中时隐藏PopupMenu


  • bool hide_on_state_item_selection

Default

false

Setter

set_hide_on_state_item_selection(value)

Getter

is_hide_on_state_item_selection()

如果true,则在选中状态项时隐藏PopupMenu


  • float submenu_popup_delay

Default

0.3

Setter

set_submenu_popup_delay(value)

Getter

get_submenu_popup_delay()

设置鼠标悬停时子菜单项弹出的延迟时间(以秒为单位)。如果弹出菜单被添加为另一个菜单的子菜单(作为子菜单),它将继承父菜单项的延迟时间。

方法说明

  • void add_check_item ( String label, int id=-1, int accel=0 )

添加一个新的带有label文本的可检查项目.

可以选择提供一个id以及一个快捷键(accel)加速.如果没有提供id,将从索引中创建一个.如果没有提供accel,那么将为其分配默认的0.参阅 get_item_accelerator了解更多关于快捷键的信息.

注意:可检查项目只是显示一个检查标记,但没有任何内置的检查行为,必须手动检查或取消检查.参阅set_item_checked了解更多关于如何控制它的信息.


  • void add_check_shortcut ( ShortCut shortcut, int id=-1, bool global=false )

添加一个新的可检查项目,并将指定的ShortCut分配给它.将复选框的标签设置为ShortCut的名称.

可以选择提供一个id.如果没有提供id,将从索引中创建一个.

注意:可检查项目只是显示一个检查标记,但没有任何内置的检查行为,必须手动检查或取消检查. 参阅 set_item_checked了解更多关于如何控制它的信息.


添加一个新的可检查项目,带有文本label和图标texture

可以选择提供一个id,以及一个加速器(accel)。如果没有提供id,将从索引中创建一个。如果没有提供accel,那么默认的0将被分配给它。参阅get_item_accelerator获取更多关于加速器的信息。

注意: 可选项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/取消检查。参阅set_item_checked获取更多关于如何控制它的信息。


添加一个新的可选项目,并为其分配指定的ShortCut和图标texture。将复选框的标签设置为ShortCut的名称。

可以选择提供一个id。如果没有提供id,将从索引中创建一个。

注意: 可选项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/取消检查。参阅set_item_checked获取更多关于如何控制它的信息。


添加带有文本lable和图标texture的新项目。

可以选择提供一个id,以及一个加速器(accel)。如果没有提供id,将从索引中创建一个。如果没有提供accel,则将为其分配默认的0。有关加速器的更多信息,请参阅get_item_accelerator


add_icon_check_item相同,但使用单选按钮。


add_icon_check_shortcut相同,但使用一个单选按钮。


添加一个新项,并分配指定的ShortCut和图标texture给它。将复选框的标签设置为ShortCut的名称。

可以选择提供id。如果没有提供id,将从索引中创建一个。


添加一个带有文本label的新项目。

可以选择提供id,以及加速器(accel)。如果没有提供id,将从索引中创建一个。如果没有提供accel,则默认的0将被分配给它。有关加速器的更多信息,请参阅get_item_accelerator


  • void add_multistate_item ( String label, int max_states, int default_state=0, int id=-1, int accel=0 )

添加一个带有文本label的新的多状态项。

与普通的二进制项相反,多状态项可以有两个以上的状态,如max_states所定义的。每次按下或激活物品将增加一个状态。默认值由default_state定义。

可以选择提供id,以及加速器(accel)。如果没有提供id,将从索引中创建一个。如果没有提供accel,则默认的0将被分配给它。有关加速器的更多信息,请参阅get_item_accelerator


  • void add_radio_check_item ( String label, int id=-1, int accel=0 )

添加一个带有文本label的单选按钮。

可以选择提供id,以及加速器(accel)。如果没有提供id,将从索引中创建一个。如果没有提供accel,则默认的0将被分配给它。有关加速器的更多信息,请参阅get_item_accelerator

注意:Checkable 项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/不检查。有关如何控制它的更多信息,请参阅 set_item_checked


  • void add_radio_check_shortcut ( ShortCut shortcut, int id=-1, bool global=false )

添加一个新的单选复选按钮并为其分配一个ShortCut。将复选框的标签设置为ShortCut的名称。

可以选择提供id。如果没有提供id,将从索引中创建一个。

注: Checkable项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/不检查。有关如何控制它的更多信息,请参阅set_item_checked


  • void add_separator ( String label=””, int id=-1 )

在项目之间添加一个分隔符。分隔符也占用一个索引,你可以通过使用id参数来设置。

可以选择提供一个标签label,它将出现在分隔符的中心。


添加一个ShortCut

可以选择提供id。如果没有提供id,将从索引中创建一个。


添加一个项目,当单击父PopupMenu节点时,它将作为子菜单。submenu参数是子节点PopupMenu的名称,当点击项目时显示该子节点。

可以选择提供id。如果没有提供id,将从索引中创建一个。


  • void clear ( )

PopupMenu中移除所有项目。


  • int get_current_index ( ) const

返回当前焦点项目的索引。如果没有焦点,则返回 -1


  • int get_item_accelerator ( int idx ) const

返回索引idx处项目的加速项。加速器是一种特殊的按键组合,可以激活物品,无论哪个控制键处于焦点状态。


  • int get_item_count ( ) const

返回PopupMenu中的项目数。


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


  • int get_item_id ( int idx ) const

返回索引idx处项目的id。id可以手动分配,而索引不能。


  • int get_item_index ( int id ) const

返回包含指定的id的项的索引。索引由引擎自动分配给每个项目。不能手动设置索引。


返回指定项的元数据,该项可以是任何类型。您可以使用set_item_metadata来设置它,它提供了一种将上下文数据分配给项的简单方法。


返回与指定的idx项关联的ShortCut


返回在索引idx处的项目的子菜单名。更多关于如何添加子菜单的信息,请参阅add_submenu_item


返回索引idx处项目的文本。


返回与指定索引 idx关联的工具提示。


  • bool is_hide_on_window_lose_focus ( ) const

如果窗口失去焦点时是否隐藏弹出窗口,则返回 true


  • bool is_item_checkable ( int idx ) const

如果索引idx的项目以某种方式是可检查的,例如,如果它有一个复选框或单选按钮,则返回true

注:可检查项目只是显示一个复选标记或单选按钮,但没有任何内置的检查行为,必须手动检查/取消。


  • bool is_item_checked ( int idx ) const

如果索引idx项被选中,则返回true


  • bool is_item_disabled ( int idx ) const

如果索引idx项被禁用,返回true。当它被禁用时,就无法选择它,或者调用它的操作。

有关如何禁用一个项目的更多信息,请参阅set_item_disabled


  • bool is_item_radio_checkable ( int idx ) const

如果index idx具有单选按钮样式的可检查性,则返回true

注:这纯粹是装饰性的;您必须添加用于在单选组中检查/取消检查项目的逻辑。


  • bool is_item_separator ( int idx ) const

如果项目是分隔符,则返回true。如果是,它将显示为一行。有关如何添加分隔符的更多信息,请参阅add_separator


  • bool is_item_shortcut_disabled ( int idx ) const

如果指定项的快捷方式被禁用,则返回true


  • void remove_item ( int idx )

从菜单中移除索引idx项。

注:被移除项后的项的索引将被移位1。


  • void set_hide_on_window_lose_focus ( bool enable )

当窗口失去焦点时隐藏PopupMenu


  • void set_item_accelerator ( int idx, int accel )

设置索引idx项的加速键。加速器是一种特殊的按键组合,可以激活物品,无论哪个控制键处于焦点状态。


  • void set_item_as_checkable ( int idx, bool enable )

设置索引idx项是否有复选框。如果false,则将项目类型设置为纯文本。

注: Checkable项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/不检查。


  • void set_item_as_radio_checkable ( int idx, bool enable )

将指定索引idx处的项目类型设置为单选按钮。如果false,则将项目类型设置为纯文本。


  • void set_item_as_separator ( int idx, bool enable )

将索引 idx标记为分隔符,这意味着它将显示为一行。如果false,则将项目类型设置为纯文本。


  • void set_item_checked ( int idx, bool checked )

设置项目在index idx处的checkstate状态。


  • void set_item_disabled ( int idx, bool disabled )

启用/禁用索引idx项。当它被禁用时,就无法选择它,也无法调用它的操作。


替换指定idx的纹理Texture图标。


  • void set_item_id ( int idx, int id )

在索引idx处设置项目的id


  • void set_item_metadata ( int idx, Variant metadata )

设置项的元数据,该项可以是任何类型。稍后您可以使用get_item_metadata获取它,它提供了一种将上下文数据分配给项的简单方法。


  • void set_item_multistate ( int idx, int state )

设置一个多态项目的状态。详见add_multistate_item


为指定的项目idx设置ShortCut


  • void set_item_shortcut_disabled ( int idx, bool disabled )

禁用指定索引idxShortCut


  • void set_item_submenu ( int idx, String submenu )

将项目的子菜单设置为索引idx。子菜单是一个子PopupMenu节点的名称,在单击项目时显示该节点。


在索引idx处设置项的文本。


  • void set_item_tooltip ( int idx, String tooltip )

在指定的索引idx处设置项目的String工具提示。


  • void toggle_item_checked ( int idx )

切换指定索引idx项的检查状态。


  • void toggle_item_multistate ( int idx )

循环到一个多态项目的下一个状态。详见add_multistate_item

Theme Property Descriptions

Default

Color( 0.88, 0.88, 0.88, 1 )

菜单项名称的默认文本Color


Default

Color( 0.7, 0.7, 0.7, 0.8 )

文本Color用于快捷键和加速器,当定义时显示在菜单项名称旁边。有关加速器的更多信息,请参阅get_item_accelerator


  • Color font_color_disabled

Default

Color( 0.4, 0.4, 0.4, 0.8 )

用于禁用菜单项的文本Color


Default

Color( 0.88, 0.88, 0.88, 1 )

用于悬停文本的Color


  • Color font_color_separator

Default

Color( 0.88, 0.88, 0.88, 1 )

用于标注分隔符文本的颜色Color。见add_separator


  • int hseparation

Default

4

项目名称与快捷文本/子菜单箭头之间的水平空间。


  • int vseparation

Default

4

每个菜单项之间的垂直间距。


用于菜单项的Font字体。


选中的复选框项目的 Texture 图标。


选中的单选按钮项目的纹理Texture图标。


未选中的单选按钮项目的 Texture 图标。


子菜单箭头的纹理Texture图标。


未选中的复选框项目的纹理Texture图标。


PopupMenu项目被鼠标悬停时显示的StyleBox


用于标签分隔器的左侧StyleBox(样式盒子).参阅 add_separator.


用于标签分隔器的右侧StyleBox(样式盒子).参阅 add_separator.


PopupMenu(弹出菜单)项的默认StyleBox(样式盒子).


禁用PopupMenu(弹出菜单)项时使用的StyleBox(样式盒子).


用于分隔符的StyleBox。请参阅add_separator