我正在使用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);
行将使代码段正常运行。不幸的是,我的程序对我来说非常需要这部分内容。
答案 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];