Wolfram mathematica 为什么';是否从自定义调色板运行ClearAll[“全局”*“更新局部变量颜色”?

Wolfram mathematica 为什么';是否从自定义调色板运行ClearAll[“全局”*“更新局部变量颜色”?,wolfram-mathematica,mathematica-frontend,Wolfram Mathematica,Mathematica Frontend,我创建了一个自定义调色板,带有一个执行ClearAll[“Global`*”]的ActionMenu。它执行所需的操作,但前端不会立即将颜色从黑色更新为蓝色(标准),就像直接从笔记本单元执行ClearAll[“Global`*]”]时发生的那样(它仅在执行其他操作后更新)。是否有方法启动前端显示状态的刷新 编辑:显然,当我从调色板加载一个包时也会发生同样的情况(蓝色不会立即更新为黑色)。不太优雅,但它可以工作(主循环必须在ClearAll之后调用一次): 当然,应该使用新的Mathematica

我创建了一个自定义调色板,带有一个执行
ClearAll[“Global`*”]
ActionMenu
。它执行所需的操作,但前端不会立即将颜色从黑色更新为蓝色(标准),就像直接从笔记本单元执行
ClearAll[“Global`*]”]
时发生的那样(它仅在执行其他操作后更新)。是否有方法启动前端显示状态的刷新


编辑:显然,当我从调色板加载一个包时也会发生同样的情况(蓝色不会立即更新为黑色)。

不太优雅,但它可以工作(主循环必须在ClearAll之后调用一次):

当然,应该使用新的Mathematica 8 NotebookEvaluate函数,但它似乎不是 在这里工作(即:

给出错误消息

Could not process unknown packet "1".

我认为笔记本电脑不能一直检查符号的状态,所以只有当它知道符号正在使用时,它才会这样做,比如当你移动光标时。这个问题对你来说是个大问题吗?(旁白:所有的so帖子都会自动在右下角签名,因此如果你不将其添加到帖子中,它会是首选。)这不是一个大问题,但我有时会使用ClearAll来查找函数的实例,因此此调色板可以简化我的操作,但如果我需要做其他事情来获得不同的颜色,则不会有太大的问题。重新删除了我的签名(你第一次删除签名时,我以为我疯了,因为我确定我已经将其放在那里了…)Rolf,欢迎来到StackOverflow!在我们的社区中找到另一个有知识的Mathematica用户总是很好的。希望你在这里能喜欢。至于你的回答:我在第二部分得到了相同的错误。第一部分有效,但也会生成消息:“ClearAll::clloc:无法清除局部变量结果。>>”
ActionMenu["Clear", 
   {"Clear global variables" :> (ClearAll["Global`*"]; 
         Block[{nb}, nb = CreateDocument[ExpressionCell[42, "Input"], 
                Visible -> False]; NotebookEvaluate[nb]; 
     NotebookDelete[nb];])}]
Could not process unknown packet "1".