matlab:如何动态设置隐形可见内容

时间:2011-12-30 15:57:52

标签: matlab user-interface properties visible matlab-uitable

我有一个关于matlab使用界面的简单问题 我发现,如果我首先声明一个对象(例如一个带有命令UI表的表)不可见,并且在我将其显示后,它可以工作,即我在图中有效地看到了修改。
相反,这是我的问题,如果我首先声明一个对象是可见的,并且在我使它不可见之后,它就不起作用,即我没有获得该对象的隐形。

举个例子:

figure;
h_tabell=uitable(gcf,'vis','off','data',randn(3));
h_tabell=uitable(gcf,'vis','on','data',randn(3)); %

这里我看到表格现在可见了

%现在我想让那张桌子再次看不见了 set(h_tabell,'vis','off') %我在这里看到该表已经可见

我需要它,因为在我的程序中,对象是可见的,如果用户需要,我想设置不可见的同一个对象。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

您应该只使用Matlab函数set来更改对象的属性。

在这里你打两次电话uitable,所以如果你把它分解,这就是真正发生的事情:

  • 第一次调用创建一个不可见的表
  • 第二次调用创建另一个表(用新句柄覆盖变量h_tabell)但这次可见

您可以通过检查您的人物现在有两个孩子来验证这一点:

children=get(gcf,'children');

现在,如果您尝试更改句柄h_tabell引用的对象的visible属性,它将仅适用于第二个表。

以下代码按预期工作,只创建一个表:

figure;
h_tabell=uitable(gcf,'visible','off','data',randn(3));
% Switch the table to visible
set(h_tabell,'visible','on');
% Switch it back to invisible
set(h_tabell,'visible','off');