1

我有一个关于 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') %这里我看到该表已经可见

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

任何人都可以帮助我吗?

4

1 回答 1

2

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

在这里,您对 进行了两次调用uitable,因此,如果您将其分解,实际会发生以下情况:

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

您可以通过检查您的图形现在是否有两个孩子来验证这一点:

children=get(gcf,'children');

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

以下代码按预期工作并仅创建一个表:

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');
于 2011-12-30T16:21:18.490 回答