Wolfram mathematica Mathematica中定位器窗格图形上的右键单击菜单
当在Mathematica中右键单击图形时,会出现上下文菜单(剪切图形、复制图形、将图形另存为…),但对于定位器窗格图形,此右键单击菜单是禁用的。 如何使用Mathematica中的EventHandler或MouseAction命令调用LocatorPane图形的上下文菜单?什么命令创建此菜单Wolfram mathematica Mathematica中定位器窗格图形上的右键单击菜单,wolfram-mathematica,contextmenu,graphic,Wolfram Mathematica,Contextmenu,Graphic,当在Mathematica中右键单击图形时,会出现上下文菜单(剪切图形、复制图形、将图形另存为…),但对于定位器窗格图形,此右键单击菜单是禁用的。 如何使用Mathematica中的EventHandler或MouseAction命令调用LocatorPane图形的上下文菜单?什么命令创建此菜单 LocatorPane[{1, 1}/2, Graphics[{Gray, Disk[]}]] 我找到了在mathematica中打开“另存为”窗口的代码 FrontEndExecute[FrontE
LocatorPane[{1, 1}/2, Graphics[{Gray, Disk[]}]]
我找到了在mathematica中打开“另存为”窗口的代码
FrontEndExecute[FrontEndToken["SelectionSaveSpecial"]]
右键单击定位器窗格时,我希望“另存为”窗口打开。不是完整的答案,而是
单元格
的上下文菜单由单元格
的上下文菜单
选项控制。您可以使用样式为“图形”的Cell
s为您想要的任何单元格设置默认上下文菜单:
CellPrint[
Cell[BoxData[SuperscriptBox["x", "2"]], "Output",
ContextMenu ->
FEPrivate`FrontEndResource["ContextMenus", "Graphics"]]]
你说:
我想通过右键单击LocatorPane graphics调用“另存图形为”
我还没有找到这样做的方法,但您可能不知道您可以:
文件>将所选内容另存为…
以所需格式保存图形我认为正确的选择似乎不起作用:
SetOptions[EvaluationNotebook[],
ComponentwiseContextMenu -> {"GraphicsBox" ->
FEPrivate`FrontEndResource["ContextMenus", "GraphicsBox"],
"Graphics3DBox" ->
FEPrivate`FrontEndResource["ContextMenus", "Graphics3DBox"],
"LocatorPaneBox" ->
FEPrivate`FrontEndResource["ContextMenus", "GraphicsBox"],
"CellGroup" ->
FEPrivate`FrontEndResource["ContextMenus", "CellGroup"],
"CellBracket" ->
FEPrivate`FrontEndResource["ContextMenus", "CellBracket"],
"CellRange" ->
FEPrivate`FrontEndResource["ContextMenus", "CellRange"],
"CellInsertionPoint" ->
FEPrivate`FrontEndResource["ContextMenus", "CellInsertionPoint"]}
];
具体而言,“LocatorPaneBox”->
的值更改为“GraphicsBox”
,但没有明显的效果
另一方面,更改“GraphicsBox”->
的值确实会产生影响
我怀疑是因为LocatorPane
使用鼠标输入,所以它捕获了右键单击尝试,并且从未将其传递到上下文菜单机制。也许禁用鼠标作为LocatorPane
的输入设备可以纠正这一问题,但这似乎并不实际
这里有一种方法可以实现您建议使用的
“SelectionSaveSpecial”
:
欢迎来到stackoverflow Jalil!别忘了为下面你喜欢的答案投票,如果其中一个答案让你满意,请用答案旁边的复选标记接受。您可以随时更改您的选择。谢谢您的更新。这就更清楚了。您的目的是保存LocatorPane的图像还是其他什么?我想通过右键单击LocatorPane graphics来调用“将图形另存为”。@Mr.Wizard我编辑了这个问题。请看。@Alexey:当我使用以下代码时:LocatorPane[{1,1}/2,Graphics[{Gray,Disk[]}]],右击菜单是禁用的,只有左击是活动的。我想在这个例子中为图形设置右键单击菜单。@Jalil我不知道如何在
LocatorPane
上启用右键单击上下文菜单,但您需要它做什么?您可以选择并复制/粘贴LocatorPane
,方法是用鼠标像普通文本一样选择它。@Alexey通过运行LocatorPane[{1,1}/2,Graphics[{Gray,Disk[]}]
创建图形。我无法通过像文本一样选择此图形来复制它。我想要一个和其他图形一样的右键菜单。@Jalil,你真的可以做到!请尝试{LocatorPane[{1,1}/2,图形[{Gray,Disk[]}]]}
。您只需使用键盘快捷键Ctrl+C和Ctrl+V即可进行复制粘贴@Jalil要选择整个单元格
内容,您也可以在单元格的自由区域内双击。@Mr.Wizard感谢您的友好响应。@Mr.Wizard在我的机器上显示“另存为…”对话框,但它不保存任何内容。目标目录中没有创建任何文件。@Alexey是的,我现在测试了它,没有通过“另存为”菜单创建任何文件。@Alexey@Jalil您使用的是什么版本?它在Windows XP上的Mathematica 7.0.1中工作。请在删除行SelectionMove[EvaluationNotebook[],All,GeneratedCell]后重试代码>,但我必须先在窗格内单击(移动选择器),然后右键单击才能使其工作。另外,您要保存到什么格式?我用了.GIF,也许不是所有的都能用。我将对此进行探讨。看来我可以保存为.gif、.jpg和.png,但不能保存为.bmp、.pdf或.emf。请尝试前三种,并告诉我它们是否有效。至少这是一个开始。
Dynamic[EventHandler[
LocatorPane[{1, 1}/2, Graphics[{Gray, Disk[]}]],
{"MouseClicked", 2} :>
FrontEndExecute[
SelectionMove[EvaluationNotebook[], All, GeneratedCell];
SelectionMove[EvaluationNotebook[], All, CellContents];
FrontEndToken["SelectionSaveSpecial"]
]
]]