2015-06-03 181 views
0

我正在製作我自己的自適應gui生成器,並在matlab中偶然發現了一個非常奇怪的錯誤。我發現您無法隱藏包含的uipanel,然後將其移至單獨的uitab。這裏是最短的片斷我可以創建:將一個選項卡組移動到一個選項卡組

a = figure; 
b = uipanel(a); 
uitabgroup(b); 
b.Visible = 'off'; 
e = uitabgroup(a); 
f = uitab(e); 
b.Parent = f; 
b.Visible = 'on'; 

這種錯誤最奇怪的是,這個工程:(剛剛卸下面板和移動選項卡組)。

a = figure; 
%b = uipanel(a); 
%uitabgroup(b); 
b = uitabgroup(a); 
b.Visible = 'off'; 
e = uitabgroup(a); 
e.Position = [.5,.5,.5,.5]; 
f = uitab(e); 
b.Parent = f; 
b.Visible = 'on'; 

在試圖用盡所有原因,這也適用:

a = figure; 
b = uitabgroup(a); 
c = uitab(b); 
d = uitabgroup(c); 
e = uitab(d); 
uipanel(e); 

這:

a = figure; 
b = uitabgroup(a); 
c = uitab(b); 
D = uipanel(c); 
d = uitabgroup(D); 
e = uitab(d); 
uipanel(e); 

我想知道如果你能幫我找到原因,並有可能的解決辦法。只是一個警告的話,第一個代碼片段將完全崩潰matlab。刪除b.Visible行將使片段正常運行。不幸的是,對於我的程序來說,這很需要我的每一部分。

回答

0

我自己找到了解決方案,但我很想知道爲什麼發生這種情況。要修復它,只需在更改父母之前將其設置爲可見,然後調整它的大小即可:

a = figure; 
b = uipanel(a); 
uitabgroup(b); 
b.Visible = 'off'; 
e = uitabgroup(a); 
f = uitab(e); 
b.Visible = 'on'; 
b.Parent = f; 
b.Position = [0 0 1 1]; 
相關問題