将标签组移动到标签组

时间:2015-06-03 16:48:23

标签: matlab user-interface

我正在使用matlab制作自己的自适应gui构建器,我在matlab中偶然发现了一个非常奇怪的错误。我发现您无法隐藏包含uipanel的{​​{1}},然后将其移到单独的uitabgroup中。这是我可以创建的最短片段:

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);

我想知道你是否可以帮助我找到原因,以及可能的解决办法。只是一句警告,第一个代码片段将完全崩溃matlab。删除a = figure; b = uitabgroup(a); c = uitab(b); D = uipanel(c); d = uitabgroup(D); e = uitab(d); uipanel(e); 行将使代码段正常运行。不幸的是,我的程序对我来说非常需要这部分内容。

1 个答案:

答案 0 :(得分: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];