Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
NativeMenu
继承: Object
操作系统原生菜单的服务器接口。
描述
NativeMenu 处理对 OS 原生全局菜单栏和弹出菜单的低级访问。
注意:这是低级 API,请考虑使用将 MenuBar.prefer_global_menu 设置为 true
的 MenuBar,以及将 PopupMenu.prefer_native_menu 设置为 true
的 PopupMenu。
要创建一个菜单,请使用 create_menu(),使用 add_*_item
方法添加菜单项。要移除一个菜单,请使用 free_menu()。
var menu
func _menu_callback(item_id):
if item_id == "ITEM_CUT":
cut()
elif item_id == "ITEM_COPY":
copy()
elif item_id == "ITEM_PASTE":
paste()
func _enter_tree():
# 创建新菜单并添加项目:
menu = NativeMenu.create_menu()
NativeMenu.add_item(menu, "Cut", _menu_callback, Callable(), "ITEM_CUT")
NativeMenu.add_item(menu, "Copy", _menu_callback, Callable(), "ITEM_COPY")
NativeMenu.add_separator(menu)
NativeMenu.add_item(menu, "Paste", _menu_callback, Callable(), "ITEM_PASTE")
func _on_button_pressed():
# 在鼠标位置显示弹出菜单:
NativeMenu.popup(menu, DisplayServer.mouse_get_position())
func _exit_tree():
# 当不再需要时移除菜单:
NativeMenu.free_menu(menu)
方法
add_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_icon_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_icon_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_icon_radio_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_multistate_item(rid: RID, label: String, max_states: int, default_state: int, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_radio_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_separator(rid: RID, index: int = -1) |
|
add_submenu_item(rid: RID, label: String, submenu_rid: RID, tag: Variant = null, index: int = -1) |
|
void |
|
find_item_index_with_submenu(rid: RID, submenu_rid: RID) const |
|
find_item_index_with_tag(rid: RID, tag: Variant) const |
|
find_item_index_with_text(rid: RID, text: String) const |
|
void |
|
get_item_accelerator(rid: RID, idx: int) const |
|
get_item_callback(rid: RID, idx: int) const |
|
get_item_count(rid: RID) const |
|
get_item_icon(rid: RID, idx: int) const |
|
get_item_indentation_level(rid: RID, idx: int) const |
|
get_item_key_callback(rid: RID, idx: int) const |
|
get_item_max_states(rid: RID, idx: int) const |
|
get_item_state(rid: RID, idx: int) const |
|
get_item_submenu(rid: RID, idx: int) const |
|
get_item_tag(rid: RID, idx: int) const |
|
get_item_text(rid: RID, idx: int) const |
|
get_item_tooltip(rid: RID, idx: int) const |
|
get_minimum_width(rid: RID) const |
|
get_popup_close_callback(rid: RID) const |
|
get_popup_open_callback(rid: RID) const |
|
get_system_menu(menu_id: SystemMenus) const |
|
get_system_menu_name(menu_id: SystemMenus) const |
|
has_feature(feature: Feature) const |
|
has_system_menu(menu_id: SystemMenus) const |
|
is_item_checkable(rid: RID, idx: int) const |
|
is_item_checked(rid: RID, idx: int) const |
|
is_item_disabled(rid: RID, idx: int) const |
|
is_item_hidden(rid: RID, idx: int) const |
|
is_item_radio_checkable(rid: RID, idx: int) const |
|
is_system_menu(rid: RID) const |
|
void |
|
void |
remove_item(rid: RID, idx: int) |
void |
set_interface_direction(rid: RID, is_rtl: bool) |
void |
set_item_accelerator(rid: RID, idx: int, keycode: Key) |
void |
set_item_callback(rid: RID, idx: int, callback: Callable) |
void |
set_item_checkable(rid: RID, idx: int, checkable: bool) |
void |
set_item_checked(rid: RID, idx: int, checked: bool) |
void |
set_item_disabled(rid: RID, idx: int, disabled: bool) |
void |
set_item_hidden(rid: RID, idx: int, hidden: bool) |
void |
set_item_hover_callbacks(rid: RID, idx: int, callback: Callable) |
void |
set_item_icon(rid: RID, idx: int, icon: Texture2D) |
void |
set_item_indentation_level(rid: RID, idx: int, level: int) |
void |
set_item_key_callback(rid: RID, idx: int, key_callback: Callable) |
void |
set_item_max_states(rid: RID, idx: int, max_states: int) |
void |
set_item_radio_checkable(rid: RID, idx: int, checkable: bool) |
void |
set_item_state(rid: RID, idx: int, state: int) |
void |
set_item_submenu(rid: RID, idx: int, submenu_rid: RID) |
void |
set_item_tag(rid: RID, idx: int, tag: Variant) |
void |
set_item_text(rid: RID, idx: int, text: String) |
void |
set_item_tooltip(rid: RID, idx: int, tooltip: String) |
void |
set_minimum_width(rid: RID, width: float) |
void |
set_popup_close_callback(rid: RID, callback: Callable) |
void |
set_popup_open_callback(rid: RID, callback: Callable) |
枚举
enum Feature: 🔗
Feature FEATURE_GLOBAL_MENU = 0
NativeMenu 支持原生全局主菜单。
Feature FEATURE_POPUP_MENU = 1
NativeMenu 支持原生弹出菜单。
Feature FEATURE_OPEN_CLOSE_CALLBACK = 2
NativeMenu 支持菜单打开和关闭回调。
Feature FEATURE_HOVER_CALLBACK = 3
NativeMenu 支持菜单项悬停回调。
Feature FEATURE_KEY_CALLBACK = 4
NativeMenu 支持菜单项加速器/键回调。
enum SystemMenus: 🔗
SystemMenus INVALID_MENU_ID = 0
无效的特殊系统菜单 ID。
SystemMenus MAIN_MENU_ID = 1
全局主菜单 ID。
SystemMenus APPLICATION_MENU_ID = 2
应用程序(macOS 上“Apple”菜单后的第一个菜单)菜单 ID。
SystemMenus WINDOW_MENU_ID = 3
“窗口”菜单 ID(在 macOS 上,该菜单包括标准窗口控制项和打开的窗口列表)。
SystemMenus HELP_MENU_ID = 4
“帮助”菜单 ID(在 macOS 上,该菜单包括帮助搜索栏)。
SystemMenus DOCK_MENU_ID = 5
Dock 图标右键菜单 ID(在 macOS 上,该菜单包括标准应用程序控制项和打开的窗口列表)。
方法说明
int add_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加新的可勾选菜单项,显示的文本为 label
。
返回插入菜单项的索引,不保证与 index
的值相同。
还可以定义键盘快捷键 accelerator
,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator
通常是将 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:callback
和 key_callback
Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag
的参数。
注意:该方法在 macOS 和 Windows 上实现。
注意:在 Windows 上会忽略 accelerator
和 key_callback
。
int add_icon_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加新的可勾选菜单项,显示的文本为 label
,图标为 icon
。
返回插入菜单项的索引,不保证与 index
的值相同。
还可以定义键盘快捷键 accelerator
,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator
通常是将 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:callback
和 key_callback
Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag
的参数。
注意:该方法在 macOS 和 Windows 上实现。
注意:在 Windows 上会忽略 accelerator
和 key_callback
。
int add_icon_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加新的菜单项,显示的文本为 label
,图标为 icon
。
返回插入菜单项的索引,不保证与 index
的值相同。
还可以定义键盘快捷键 accelerator
,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator
通常是将 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:callback
和 key_callback
Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag
的参数。
注意:该方法在 macOS 和 Windows 上实现。
注意:在 Windows 上会忽略 accelerator
和 key_callback
。
int add_icon_radio_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加新的单选菜单项,显示的文本为 label
,图标为 icon
。
返回插入菜单项的索引,不保证与 index
的值相同。
还可以定义键盘快捷键 accelerator
,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator
通常是将 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:单选菜单项只负责显示选中标记,并没有任何内置检查行为,必须手动进行选中、取消选中的操作。关于如何进行控制的更多信息见 set_item_checked()。
注意:callback
和 key_callback
Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag
的参数。
注意:该方法在 macOS 和 Windows 上实现。
注意:在 Windows 上会忽略 accelerator
和 key_callback
。
int add_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗
向 ID 为 rid
的全局菜单添加新的菜单项,显示的文本为 label
。
返回插入菜单项的索引,不保证与 index
的值相同。
还可以定义键盘快捷键 accelerator
,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator
通常是将 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:callback
和 key_callback
Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag
的参数。
注意:该方法在 macOS 和 Windows 上实现。
注意:在 Windows 上会忽略 accelerator
和 key_callback
。
int add_multistate_item(rid: RID, label: String, max_states: int, default_state: int, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加新的菜单项,显示的文本为 label
。
与常规的二态菜单项不同,多状态菜单项的状态可以多于两个,由 max_states
定义。每点击或激活该菜单项一次,状态就会加一。默认值由 default_state
定义。
返回插入菜单项的索引,不保证与 index
的值相同。
还可以定义键盘快捷键 accelerator
,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator
通常是将 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:默认情况下不会展示当前菜单项的状态,应该手动更改。
注意:callback
和 key_callback
Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag
的参数。
注意:该方法在 macOS 和 Windows 上实现。
注意:在 Windows 上会忽略 accelerator
和 key_callback
。
int add_radio_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加新的单选菜单项,显示的文本为 label
。
返回插入菜单项的索引,不保证与 index
的值相同。
还可以定义键盘快捷键 accelerator
,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator
通常是将 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:单选菜单项只负责显示选中标记,并没有任何内置检查行为,必须手动进行选中、取消选中的操作。关于如何进行控制的更多信息见 set_item_checked()。
注意:callback
和 key_callback
Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag
的参数。
注意:该方法在 macOS 和 Windows 上实现。
注意:在 Windows 上会忽略 accelerator
和 key_callback
。
int add_separator(rid: RID, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加分隔符。分隔符也会占据一个索引号。
返回插入菜单项的索引,不保证与 index
的值相同。
注意:该方法在 macOS 和 Windows 上实现。
int add_submenu_item(rid: RID, label: String, submenu_rid: RID, tag: Variant = null, index: int = -1) 🔗
向 ID 为 rid
的全局菜单中添加作为子菜单的菜单项。submenu_rid
参数为全局菜单根菜单项的 RID,会在点击该菜单项时显示。
返回插入菜单项的索引,不保证与 index
的值相同。
注意:该方法在 macOS 和 Windows 上实现。
从全局菜单中移除所有菜单项 rid
。
注意:该方法在 macOS 和 Windows 上实现。
新建全局菜单对象。
注意:该方法在 macOS 和 Windows 上实现。
int find_item_index_with_submenu(rid: RID, submenu_rid: RID) const 🔗
返回由 submenu_rid
指定的子菜单项的索引。索引由引擎自动分配给每个菜单项,无法手动设置。
注意:该方法在 macOS 和 Windows 上实现。
int find_item_index_with_tag(rid: RID, tag: Variant) const 🔗
返回具有指定 tag
的菜单项的索引。引擎会自动为每个菜单项分配索引,无法手动设置。
注意:该方法在 macOS 和 Windows 上实现。
int find_item_index_with_text(rid: RID, text: String) const 🔗
返回具有指定 text
的菜单项的索引。引擎会自动为每个菜单项分配索引,无法手动设置。
注意:该方法在 macOS 和 Windows 上实现。
释放该 NativeMenu 所创建的全局菜单对象。
注意:该方法在 macOS 和 Windows 上实现。
Key get_item_accelerator(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项的快捷键。快捷键是能够激活该菜单项的特殊按键组合,无论该控件是否有焦点。
注意:该方法仅在 macOS 上实现。
Callable get_item_callback(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项的回调。
注意:该方法在 macOS 和 Windows 上实现。
int get_item_count(rid: RID) const 🔗
返回全局菜单 rid
中的菜单项的数量。
注意:该方法在 macOS 和 Windows 上实现。
Texture2D get_item_icon(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项的图标。
注意:该方法在 macOS 和 Windows 上实现。
int get_item_indentation_level(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项的水平偏移量。
注意:该方法仅在 macOS 上实现。
Callable get_item_key_callback(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项的快捷键回调。
注意:该方法仅在 macOS 上实现。
int get_item_max_states(rid: RID, idx: int) const 🔗
返回多状态项的状态数。详见 add_multistate_item()。
注意:该方法在 macOS 和 Windows 上实现。
int get_item_state(rid: RID, idx: int) const 🔗
返回多状态项的状态。详见 add_multistate_item()。
注意:该方法在 macOS 和 Windows 上实现。
RID get_item_submenu(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项的子菜单 ID。关于如何添加子菜单的更多信息见 add_submenu_item()。
注意:该方法在 macOS 和 Windows 上实现。
Variant get_item_tag(rid: RID, idx: int) const 🔗
返回指定菜单项的元数据,可能是任何类型。元数据可以使用 set_item_tag() 设置,该方法提供了一种将上下文数据分配给菜单项的简单方式。
注意:该方法在 macOS 和 Windows 上实现。
String get_item_text(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项的文本。
注意:该方法在 macOS 和 Windows 上实现。
String get_item_tooltip(rid: RID, idx: int) const 🔗
返回索引为 idx
的菜单项所关联的工具提示。
注意:该方法仅在 macOS 上实现。
float get_minimum_width(rid: RID) const 🔗
返回全局菜单的最小宽度。
注意:该方法仅在 macOS 上实现。
Callable get_popup_close_callback(rid: RID) const 🔗
返回全局菜单的关闭回调。
注意:该方法在 macOS 和 Windows 上实现。
Callable get_popup_open_callback(rid: RID) const 🔗
返回全局菜单的打开回调。
注意:该方法仅在 macOS 上实现。
Vector2 get_size(rid: RID) const 🔗
返回全局菜单的大小。
注意:该方法在 macOS 和 Windows 上实现。
RID get_system_menu(menu_id: SystemMenus) const 🔗
返回特殊系统菜单的 RID。
注意:该方法仅在 macOS 上实现。
String get_system_menu_name(menu_id: SystemMenus) const 🔗
返回特殊系统菜单的可读名称。
注意:该方法仅在 macOS 上实现。
bool has_feature(feature: Feature) const 🔗
如果当前的 NativeMenu 支持指定的特性 feature
,则返回 true
,否则返回 false
。
注意:该方法在 macOS 和 Windows 上实现。
bool has_menu(rid: RID) const 🔗
如果 rid
是有效的全局菜单,则返回 true
。
注意:该方法在 macOS 和 Windows 上实现。
bool has_system_menu(menu_id: SystemMenus) const 🔗
如果支持特殊系统菜单则返回 true
。
注意:该方法仅在 macOS 上实现。
bool is_item_checkable(rid: RID, idx: int) const 🔗
如果索引为 idx
的菜单项能够以某种方式被勾选,即有复选框或单选按钮,则返回 true
。
注意:该方法在 macOS 和 Windows 上实现。
bool is_item_checked(rid: RID, idx: int) const 🔗
如果索引 idx
处的菜单项被勾选,则返回 true
。
注意:该方法在 macOS 和 Windows 上实现。
bool is_item_disabled(rid: RID, idx: int) const 🔗
如果索引 idx
处的菜单项被禁用,则返回 true
。禁用后,无法选择它,也无法调用其动作。
有关如何禁用菜单项的更多信息,请参阅 set_item_disabled()。
注意:该方法在 macOS 和 Windows 上实现。
bool is_item_hidden(rid: RID, idx: int) const 🔗
如果索引 idx
处的菜单项被隐藏,则返回 true
。
有关如何隐藏菜单项的更多信息,请参阅 set_item_hidden()。
注意:该方法仅在 macOS 上实现。
bool is_item_radio_checkable(rid: RID, idx: int) const 🔗
如果索引为 idx
的菜单项为单选按钮风格,则返回 true
。
注意:仅为装饰作用;必须自行为单选组添加勾选、取消勾选的逻辑。
注意:该方法在 macOS 和 Windows 上实现。
bool is_opened(rid: RID) const 🔗
如果菜单当前已打开,则返回 true
。
注意:该方法仅在 macOS 上实现。
bool is_system_menu(rid: RID) const 🔗
如果全局菜单为特殊系统菜单则返回 true
。
注意:该方法仅在 macOS 上实现。
void popup(rid: RID, position: Vector2i) 🔗
在屏幕坐标中的 position
处显示全局菜单。
注意:该方法在 macOS 和 Windows 上实现。
void remove_item(rid: RID, idx: int) 🔗
从全局菜单 rid
中移除索引 idx
处的菜单项。
注意:被移除菜单项之后的菜单项的索引将移动一格。
注意:该方法在 macOS 和 Windows 上实现。
void set_interface_direction(rid: RID, is_rtl: bool) 🔗
如果 is_rtl
为 true
,则设置菜单文本布局方向为从右到左。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_accelerator(rid: RID, idx: int, keycode: Key) 🔗
设置索引为 idx
的菜单项的快捷键。keycode
可以是单一 Key,也可以是 KeyModifierMask 和 Key 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_A
(Ctrl + A)。
注意:该方法仅在 macOS 上实现。
void set_item_callback(rid: RID, idx: int, callback: Callable) 🔗
设置索引为 idx
的菜单项的回调。回调会在按下菜单项时发出。
注意:callback
Callable 只接受一个 Variant 参数,传入 Callable 的参数是创建菜单项时传给 tag
参数的值。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_checkable(rid: RID, idx: int, checkable: bool) 🔗
设置索引为 idx
的菜单项是否为复选框。如果为 false
,则会将该菜单项的类型设置为纯文本。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_checked(rid: RID, idx: int, checked: bool) 🔗
设置索引为 idx
的菜单项的勾选状态。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_disabled(rid: RID, idx: int, disabled: bool) 🔗
启用/禁用索引为 idx
的菜单项。禁用状态下无法被选中,也无法激活动作。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_hidden(rid: RID, idx: int, hidden: bool) 🔗
隐藏/显示索引为 idx
的菜单项。当它被隐藏时,项目不会出现在菜单中,并且无法调用其操作。
注意:该方法仅在 macOS 上实现。
void set_item_hover_callbacks(rid: RID, idx: int, callback: Callable) 🔗
设置索引为 idx
的菜单项的回调。回调会在菜单项被悬停时发出。
注意:callback
Callable 需要接受一个 Variant 参数,传入 Callable 的参数是创建菜单项时传给 tag
参数的值。
注意:该方法仅在 macOS 上实现。
void set_item_icon(rid: RID, idx: int, icon: Texture2D) 🔗
替换指定索引 idx
的 Texture2D 图标。
注意:该方法在 macOS 和 Windows 上实现。
注意:macOS Dock 菜单项不支持该方法。
void set_item_indentation_level(rid: RID, idx: int, level: int) 🔗
设置索引为 idx
的菜单项的水平偏移量。
注意:该方法仅在 macOS 上实现。
void set_item_key_callback(rid: RID, idx: int, key_callback: Callable) 🔗
设置索引为 idx
的菜单项的回调。回调会在激活快捷键时发出。
注意:key_callback
Callable 只接受一个 Variant 参数,传入 Callable 的参数是创建菜单项时传给 tag
参数的值。
注意:该方法仅在 macOS 上实现。
void set_item_max_states(rid: RID, idx: int, max_states: int) 🔗
设置多状态项的状态数。详见 add_multistate_item()。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_radio_checkable(rid: RID, idx: int, checkable: bool) 🔗
将索引为 idx
的菜单项设置为单选按钮风格。如果为 false
,则会将该菜单项的类型设置为纯文本。
注意:仅为装饰作用;必须自行为单选组添加选中、取消选中的逻辑。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_state(rid: RID, idx: int, state: int) 🔗
设置多状态项的状态。详见 add_multistate_item()。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_submenu(rid: RID, idx: int, submenu_rid: RID) 🔗
设置索引 idx
处菜单项的子菜单 RID。子菜单是一个全局菜单,点击该菜单项时将显示该菜单。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_tag(rid: RID, idx: int, tag: Variant) 🔗
设置指定菜单项的元数据,可以是任何类型。后续可以使用 get_item_tag() 获取,它提供了一种将上下文数据分配给项目的简单方式。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_text(rid: RID, idx: int, text: String) 🔗
设置索引为 idx
的菜单项的文本。
注意:该方法在 macOS 和 Windows 上实现。
void set_item_tooltip(rid: RID, idx: int, tooltip: String) 🔗
设置索引为 idx
的菜单项的工具提示 String。
注意:该方法仅在 macOS 上实现。
void set_minimum_width(rid: RID, width: float) 🔗
设置全局菜单的最小宽度。
注意:该方法仅在 macOS 上实现。
void set_popup_close_callback(rid: RID, callback: Callable) 🔗
注册可调用体,在菜单即将显示时发出。
注意:操作系统可以模拟菜单打开来跟踪菜单项更改和全局快捷键,在这种情况下不会触发相应的关闭回调。请使用 is_opened() 检查菜单当前是否已打开。
注意:该方法在 macOS 和 Windows 上实现。
void set_popup_open_callback(rid: RID, callback: Callable) 🔗
注册可调用函数以在菜单关闭后发出。
注意:该方法仅在 macOS 上实现。