【问题标题】:Changing multiple .fig files in Matlab systematically在 Matlab 中系统地更改多个 .fig 文件
【发布时间】:2009-10-07 17:21:39
【问题描述】:

我想浏览一个目录,其中存储了许多 Matlab GUI(.fig 文件及其相关的 .m 文件)并系统地更改它们。对于每个,我想搜索某个弹出菜单,如果存在,删除一些特定选项。

我通常使用 get() 和 set() 或类似的函数来摆弄 GUI,但是这些函数需要句柄,我不知道在不运行 GUI 时如何获取句柄,我也不知道如何保存更改。

如果我将 .fig 作为文本打开,则无法理解。

我正在考虑在 guide(Matlab 的 GUI 开发环境)中一次打开每个并手动更改它,但我真的很想避免它。我说的是几十个文件,将来我的操作可能不得不改变。

也许有办法从命令行控制guide?还是其他解决方案?

【问题讨论】:

  • “下拉菜单”是指“弹出菜单”,还是屏幕顶部的“文件、编辑、查看”类型的菜单?
  • “下拉菜单”是指“弹出菜单”。抱歉,马上改正

标签: user-interface matlab


【解决方案1】:

您可以使用hgloadopenfig 加载.fig 文件。这两个函数都返回图形的句柄。

获得图形句柄后,您可以使用findobj 获取弹出菜单的句柄。然后setget照常更改菜单的选项,然后使用hgsave保存修改后的图形。

例如:

f = hgload('file.fig');
menuH = findobj(f, 'Type', 'popup'); 
set(menuH, 'String', new_options);
hgsave(f, 'file.fig');

【讨论】:

    【解决方案2】:

    gcf() 在 open() 获取句柄后立即执行,并且可以通过编程方式为许多图形完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      相关资源
      最近更新 更多