ActionMenu[name,{lbl1:>act1,lbl2:>act2,…}]
表示一个带有标签 name 以及标有 lbli 项的操作菜单,如果选择了相应项则对表达式 acti 进行计算.
ActionMenu[name,{…,lbli{sublbl1:>subact1,sublbl2:>subact2,…},…}]
表示一个含有子菜单的操作菜单,标签为 lbli,含有子项 sublbli,操作为 subacti.
ActionMenu
ActionMenu[name,{lbl1:>act1,lbl2:>act2,…}]
表示一个带有标签 name 以及标有 lbli 项的操作菜单,如果选择了相应项则对表达式 acti 进行计算.
ActionMenu[name,{…,lbli{sublbl1:>subact1,sublbl2:>subact2,…},…}]
表示一个含有子菜单的操作菜单,标签为 lbli,含有子项 sublbli,操作为 subacti.
更多信息和选项
- name 和子菜单以及子项标签可以是任何表达式.
- ActionMenu 以 "ActionMenu" 样式缺省显示 name 和 lbli,通常使用系统菜单字库.
- 在 ActionMenu[name,list] 中,Delimiter 可以显示为一个 list 元素,在一个显示的菜单中指定一个水平定界符.
- 子菜单可以含有分隔符和其他子菜单.
- 可以给出以下可选项:
-
Appearance Automatic 菜单的总体外观 BaselinePosition Automatic 如何与周围文本基线对齐 BaseStyle {} 菜单的基本样式说明 ContentPadding True 是否紧挨内容收缩边幅 Enabled Automatic 菜单是否可用 Evaluator Automatic 在其中计算 acti 的内核 FrameMargins Automatic 菜单框架内留出的边幅 ImageMargins 0 显示的菜单图像周围边幅 ImageSize Automatic 显示菜单的总体图像大小 MenuStyle {} 菜单项的样式规范 Method "Preemptive" 所用的求值方法 - Appearance 的可能设置包括:
-
None 只显示 name,不加修正 Automatic 显示一种特定操作菜单形式(缺省) "PopupMenu" 类似弹出菜单式显示,初值为 name "Button" 类似按钮显示 - Method 选项的典型可能设置包括 "Preemptive" 和"Queued".
- BaseStyle 的设置附加到通常由当前样式表中 "ActionMenu" 样式给出的缺省样式中.
范例
打开所有单元 关闭所有单元基本范例 (3)
ActionMenu["Print Factorials", {"4!" :> Print[4!], "7!" :> Print[7!], "10!" :> Print[10!]}]{ActionMenu["Set x", {"x = 1" :> (x = 1;), "x = 2" :> (x = 2;)}], Dynamic[x]}ActionMenu["Print", {"Print factorials" -> {"4!" :> Print[4!], "7!" :> Print[7!], "10!" :> Print[10!]}, "Print double factorials" -> {"4!!" :> Print[4!!], "7!!" :> Print[7!!], "10!!" :> Print[10!!]}}]范围 (3)
利用 Delimiter 分隔菜单项:
{ActionMenu["Set x", {"x = 1" :> (x = 1;), Delimiter, "x = 2" :> (x = 2;)}], Dynamic[x]}{ActionMenu["Set x", {Graphics[Disk[], ImageSize -> 20] :> (x = 1;), Delimiter, Expand[(a + b) ^ 4] :> (x = 2;)}], Dynamic[x]}ActionMenu["Help", {
"Version Information" -> {"Kernel" :> Print[$Version], "All" :> NotebookPut[SystemInformation[]]},
"Documentation" -> {
"Home" :> FrontEndTokenExecute[EvaluationNotebook[], "OpenHelpLink"],
Delimiter,
"$Version" :> SystemOpen["paclet:ref/$Version"], "SystemInformation" :> SystemOpen["paclet:ref/SystemInformation"]} }]选项 (10)
Appearance (1)
ContentPadding (1)
Enabled (2)
ActionMenu 在缺省状态下可用:
ActionMenu["Factorials", {"4!" :> Print[4!], "7!" :> Print[7!], "10!" :> Print[10!]}]ActionMenu["Factorials", {"4!" :> Print[4!], "7!" :> Print[7!], "10!" :> Print[10!]}, Enabled -> False]Evaluator (2)
ActionMenu["Kernel", {"$ProcessID" :> Print[$ProcessID], "$SessionID" :> Print[$SessionID]}]通过设置 Evaluator,按钮函数可以在另一个内核进行运算:
ActionMenu["Front End", {"$ProcessID" :> Print[$ProcessID], "$SessionID" :> Print[$SessionID]}, Evaluator -> "System"]FrameMargins (1)
ImageMargins (1)
ImageSize (1)
Method (1)
缺省时,操作菜单函数在一个抢先式链接上计算,该链接在5秒后超时:
DynamicModule[{a = "start"},
{ActionMenu["does time out",
{"Long task" :> (Pause[10];a = "end long task"),
"Longer task" :> (Pause[20];a = "end longer task")}
], Dynamic[a]}]使用 Method->"Queued" 计算主链接上的按钮函数,主链接永不超时:
DynamicModule[{a = "start"},
{ActionMenu["does not time out",
{"Long task" :> (Pause[10];a = "end long task"),
"Longer task" :> (Pause[20];a = "end longer task")},
Method -> "Queued"
], Dynamic[a]}]应用 (2)
{g1, g2, g3, g4} = {Graphics[Disk[], ImageSize -> 20], Graphics[Circle[], ImageSize -> 20], Graphics[Rectangle[], ImageSize -> 20], Graphics[Polygon[{{-1, 0}, {1, 0}, {0, Sqrt[3]}}], ImageSize -> 20]};DynamicModule[{x = {}},
{ActionMenu["Graphics", {g1 :> (x = Disk[];), g2 :> (x = Circle[];),
g3 :> (x = Rectangle[];),
g4 :> (x = Polygon[{{-1, 0}, {1, 0}, {0, Sqrt[3]}}];)}], Dynamic[Graphics[{Pink, x}]]}]DynamicModule[{range = 1}, Column[{ActionMenu["Zoom", {"In" :> (range = range 3 / 4), "Out" :> (range = range 4 / 3), "Reset" :> (range = 1)}], Graphics[{Circle[{0, 0}, #]& /@ {1 / 5, 1 / 2, 1, 5, 10}}, Axes -> True, PlotRange -> Dynamic[range]]}]]属性和关系 (1)
ActionMenu 和 Button 级数效果相同:
{ActionMenu["Set x", {"x = 1" :> (x = 1;), "x = 2" :> (x = 2;)}], Dynamic[x]}{Button["y = 1", (y = 1;)], Button["y = 2", (y = 2;)], Dynamic[y]}巧妙范例 (1)
menus = Get[FileNameJoin[{$InstallationDirectory, "SystemFiles/FrontEnd/TextResources", $InterfaceEnvironment, "MenuSetup.tr"}]][[2]];将菜单转换为可在 ActionMenu 中部署的表单:
menus = menus //. {MenuItem[lbl_, action_String, ___] :> (lbl :> FrontEndTokenExecute[action]),
MenuItem[lbl_, action_, ___] :> (lbl :> action), (HelpMenu | Menu)[lbl_, submenu_List, ___] :> (lbl -> submenu),
LinkedItems[{name_ :> _, ___}] :> (name :> Null),
AlternateItems[{first_, ___}] :> first};
ActionMenu["Main menu", menus]文本
Wolfram Research (2007),ActionMenu,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ActionMenu.html (更新于 2023 年).
CMS
Wolfram 语言. 2007. "ActionMenu." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2023. https://reference.wolfram.com/language/ref/ActionMenu.html.
APA
Wolfram 语言. (2007). ActionMenu. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ActionMenu.html 年
BibTeX
@misc{reference.wolfram_2026_actionmenu, author="Wolfram Research", title="{ActionMenu}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/ActionMenu.html}", note=[Accessed: 10-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_actionmenu, organization={Wolfram Research}, title={ActionMenu}, year={2023}, url={https://reference.wolfram.com/language/ref/ActionMenu.html}, note=[Accessed: 10-August-2026]}