PopupMenu
Inherits: Popup < Control < CanvasItem < Node < Object
PopupMenu(弹出菜单)显示选项列表.
描述
PopupMenu
是一个显示选项列表的Control.它们在工具栏或上下文菜单中很常用.
属性
| ||
focus_mode |
| |
| ||
| ||
| ||
|
方法
主题属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
信号
- 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。