2011-12-30 137 views
1

我有一個關於matlab使用接口的簡單問題。
我發現如果我第一次聲明一個對象(例如一個帶有命令UI表的表)不可見,並且在我使它可見之後,它可以工作,也就是說,我在圖中有效地看到了修改。
相反,這裏是我的問題,如果我首先聲明一個對象是可見的,並且在我使它不可見之後,它不起作用,即我沒有獲得該對象的隱藏性。matlab:如何設置動態不可見什麼是可見的

製作一個例子:

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

在這裏我看到,該表是現在可見

%現在,我要做成該表再次隱形,與 set(h_tabell,'vis','off') %這裏我看到,該表已經是可見

我需要它,因爲在我的程序中,對象是可見的,如果用戶需要,我想設置不可見的同一個對象。

有人可以幫助我嗎?

回答

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'); 
相關問題