【问题标题】:matlab: how to set dynamically invisible what is visiblematlab:如何动态设置不可见什么是可见的
【发布时间】:2012-01-30 15:58:45
【问题描述】:

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

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

有人可以帮助我吗?

【问题讨论】:

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


    【解决方案1】:

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

    这里你给uitable打了两个电话,所以如果你把它分解,下面是真正发生的事情:

    • 第一次调用create an invisible table
    • 第二次调用创建另一个表(用新句柄覆盖变量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');
    

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 2021-12-27
      • 2019-06-04
      • 1970-01-01
      相关资源
      最近更新 更多