PopupMenu¶
Inherits: Popup < Control < CanvasItem < Node < Object
PopupMenu(弹出菜单)显示选项列表.
描述¶
PopupMenu是一个显示选项列表的Control.它们在工具栏或上下文菜单中很常用.
属性¶
|
||
focus_mode |
|
|
|
||
|
||
|
||
|
方法¶
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 |
|
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 ( ) |
get_current_index ( ) const |
|
get_item_accelerator ( int idx ) const |
|
get_item_count ( ) const |
|
get_item_icon ( int idx ) const |
|
get_item_id ( int idx ) const |
|
get_item_index ( int id ) const |
|
get_item_metadata ( int idx ) const |
|
get_item_shortcut ( int idx ) const |
|
get_item_submenu ( int idx ) const |
|
get_item_text ( int idx ) const |
|
get_item_tooltip ( int idx ) const |
|
is_hide_on_window_lose_focus ( ) const |
|
is_item_checkable ( int idx ) const |
|
is_item_checked ( int idx ) const |
|
is_item_disabled ( int idx ) const |
|
is_item_radio_checkable ( int idx ) const |
|
is_item_separator ( int idx ) const |
|
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 ) |
主题属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
信号¶
id_focused ( int id )
当用户使用ui_up或ui_down操作导航到某个id项时触发。
id_pressed ( int id )
当按下某个id的项目或激活其加速器时触发。
index_pressed ( int index )
当按下某个index的项或激活其加速器时触发。
属性说明¶
bool allow_search
Default |
|
Setter |
set_allow_search(value) |
Getter |
get_allow_search() |
如果为true,允许用字母键导航PopupMenu。
bool hide_on_checkable_item_selection
Default |
|
Setter |
set_hide_on_checkable_item_selection(value) |
Getter |
is_hide_on_checkable_item_selection() |
如果true,则在选中复选框或单选按钮时隐藏PopupMenu。
bool hide_on_item_selection
Default |
|
Setter |
set_hide_on_item_selection(value) |
Getter |
is_hide_on_item_selection() |
如果true,当一个项目被选中时隐藏PopupMenu。
bool hide_on_state_item_selection
Default |
|
Setter |
set_hide_on_state_item_selection(value) |
Getter |
is_hide_on_state_item_selection() |
如果true,则在选中状态项时隐藏PopupMenu。
float submenu_popup_delay
Default |
|
Setter |
set_submenu_popup_delay(value) |
Getter |
get_submenu_popup_delay() |
设置鼠标悬停时子菜单项弹出的延迟时间(以秒为单位)。如果弹出菜单被添加为另一个菜单的子菜单(作为子菜单),它将继承父菜单项的延迟时间。
方法说明¶
添加一个新的带有label文本的可检查项目.
可以选择提供一个id以及一个快捷键(accel)加速.如果没有提供id,将从索引中创建一个.如果没有提供accel,那么将为其分配默认的0.参阅 get_item_accelerator了解更多关于快捷键的信息.
注意:可检查项目只是显示一个检查标记,但没有任何内置的检查行为,必须手动检查或取消检查.参阅set_item_checked了解更多关于如何控制它的信息.
添加一个新的可检查项目,并将指定的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相同,但使用单选按钮。
void add_icon_radio_check_shortcut ( Texture texture, ShortCut shortcut, int id=-1, bool global=false )
与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。
添加一个带有文本label的单选按钮。
可以选择提供id,以及加速器(accel)。如果没有提供id,将从索引中创建一个。如果没有提供accel,则默认的0将被分配给它。有关加速器的更多信息,请参阅get_item_accelerator。
注意:Checkable 项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/不检查。有关如何控制它的更多信息,请参阅 set_item_checked。
添加一个新的单选复选按钮并为其分配一个ShortCut。将复选框的标签设置为ShortCut的名称。
可以选择提供id。如果没有提供id,将从索引中创建一个。
注: Checkable项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/不检查。有关如何控制它的更多信息,请参阅set_item_checked。
在项目之间添加一个分隔符。分隔符也占用一个索引,你可以通过使用id参数来设置。
可以选择提供一个标签label,它将出现在分隔符的中心。
添加一个ShortCut。
可以选择提供id。如果没有提供id,将从索引中创建一个。
添加一个项目,当单击父PopupMenu节点时,它将作为子菜单。submenu参数是子节点PopupMenu的名称,当点击项目时显示该子节点。
可以选择提供id。如果没有提供id,将从索引中创建一个。
void clear ( )
从PopupMenu中移除所有项目。
int get_current_index ( ) const
返回当前焦点项目的索引。如果没有焦点,则返回 -1。
返回索引idx处项目的加速项。加速器是一种特殊的按键组合,可以激活物品,无论哪个控制键处于焦点状态。
int get_item_count ( ) const
返回PopupMenu中的项目数。
返回索引idx处项目的图标。
返回索引idx处项目的id。id可以手动分配,而索引不能。
返回包含指定的id的项的索引。索引由引擎自动分配给每个项目。不能手动设置索引。
返回指定项的元数据,该项可以是任何类型。您可以使用set_item_metadata来设置它,它提供了一种将上下文数据分配给项的简单方法。
返回与指定的idx项关联的ShortCut。
返回在索引idx处的项目的子菜单名。更多关于如何添加子菜单的信息,请参阅add_submenu_item。
返回索引idx处项目的文本。
返回与指定索引 idx关联的工具提示。
bool is_hide_on_window_lose_focus ( ) const
如果窗口失去焦点时是否隐藏弹出窗口,则返回 true。
如果索引idx的项目以某种方式是可检查的,例如,如果它有一个复选框或单选按钮,则返回true。
注:可检查项目只是显示一个复选标记或单选按钮,但没有任何内置的检查行为,必须手动检查/取消。
如果索引idx项被选中,则返回true。
如果索引idx项被禁用,返回true。当它被禁用时,就无法选择它,或者调用它的操作。
有关如何禁用一个项目的更多信息,请参阅set_item_disabled。
如果index idx具有单选按钮样式的可检查性,则返回true。
注:这纯粹是装饰性的;您必须添加用于在单选组中检查/取消检查项目的逻辑。
如果项目是分隔符,则返回true。如果是,它将显示为一行。有关如何添加分隔符的更多信息,请参阅add_separator。
如果指定项的快捷方式被禁用,则返回true。
void remove_item ( int idx )
从菜单中移除索引idx项。
注:被移除项后的项的索引将被移位1。
void set_hide_on_window_lose_focus ( bool enable )
当窗口失去焦点时隐藏PopupMenu。
设置索引idx项的加速键。加速器是一种特殊的按键组合,可以激活物品,无论哪个控制键处于焦点状态。
设置索引idx项是否有复选框。如果false,则将项目类型设置为纯文本。
注: Checkable项目只是显示一个复选标记,但没有任何内置的检查行为,必须手动检查/不检查。
将指定索引idx处的项目类型设置为单选按钮。如果false,则将项目类型设置为纯文本。
将索引 idx标记为分隔符,这意味着它将显示为一行。如果false,则将项目类型设置为纯文本。
设置项目在index idx处的checkstate状态。
启用/禁用索引idx项。当它被禁用时,就无法选择它,也无法调用它的操作。
替换指定idx的纹理Texture图标。
在索引idx处设置项目的id。
设置项的元数据,该项可以是任何类型。稍后您可以使用get_item_metadata获取它,它提供了一种将上下文数据分配给项的简单方法。
设置一个多态项目的状态。详见add_multistate_item。
为指定的项目idx设置ShortCut。
禁用指定索引idx的ShortCut。
将项目的子菜单设置为索引idx。子菜单是一个子PopupMenu节点的名称,在单击项目时显示该节点。
在索引idx处设置项的文本。
在指定的索引idx处设置项目的String工具提示。
void toggle_item_checked ( int idx )
切换指定索引idx项的检查状态。
void toggle_item_multistate ( int idx )
循环到一个多态项目的下一个状态。详见add_multistate_item。
Theme Property Descriptions¶
Color font_color
Default |
|
菜单项名称的默认文本Color。
Color font_color_accel
Default |
|
文本Color用于快捷键和加速器,当定义时显示在菜单项名称旁边。有关加速器的更多信息,请参阅get_item_accelerator。
Color font_color_disabled
Default |
|
用于禁用菜单项的文本Color。
Color font_color_hover
Default |
|
用于悬停文本的Color。
Color font_color_separator
Default |
|
用于标注分隔符文本的颜色Color。见add_separator。
int hseparation
Default |
|
项目名称与快捷文本/子菜单箭头之间的水平空间。
int vseparation
Default |
|
每个菜单项之间的垂直间距。
Font font
用于菜单项的Font字体。
Texture checked
选中的复选框项目的 Texture 图标。
Texture radio_checked
选中的单选按钮项目的纹理Texture图标。
Texture radio_unchecked
未选中的单选按钮项目的 Texture 图标。
Texture submenu
子菜单箭头的纹理Texture图标。
Texture unchecked
未选中的复选框项目的纹理Texture图标。
StyleBox hover
当PopupMenu项目被鼠标悬停时显示的StyleBox。
StyleBox labeled_separator_left
用于标签分隔器的左侧StyleBox(样式盒子).参阅 add_separator.
StyleBox labeled_separator_right
用于标签分隔器的右侧StyleBox(样式盒子).参阅 add_separator.
StyleBox panel
PopupMenu(弹出菜单)项的默认StyleBox(样式盒子).
StyleBox panel_disabled
禁用PopupMenu(弹出菜单)项时使用的StyleBox(样式盒子).
StyleBox separator
用于分隔符的StyleBox。请参阅add_separator。