MATLAB R2014a在选项卡上创建选项卡(uitabgroup)

时间:2015-08-23 12:48:24

标签: matlab tabs

我使用 uitabgroup 创建了一个标签式窗格,其中包含一些标签,并在其中一个标签上添加了另一个uitabgroup。代码是这样的:

fh = figure;
tabs1 = uitabgroup('Parent', fh);
tab1 = uitab(tabs1, 'title', 'Tab1');
tab2 = uitab(tabs1, 'title', 'Tab2');

th1 = uicontrol('Parent', tab1, 'Style', 'text', 'String', 'Should be on tab1');

tabs2 = uitabgroup('Parent', tab1);
tab3 = uitab(tabs2, 'title', 'Tab3');
tab4 = uitab(tabs2, 'title', 'Tab4');

th2 = uicontrol('Parent', tab4, 'Style', 'text', 'String', 'Should be on tab4 which is on tab1');

th3 = uicontrol('Parent', tab2, 'Style', 'text', 'String', 'Should be on tab2');

但是在添加第二个uitabgroup之后,tab2的内容没有显示。 只有在tab2之后再添加2个标签时,内容才显示在最后一个标签上。

这样的事情:

tabs1 = uitabgroup('Parent', fh);
tab1 = uitab(tabs1, 'title', 'Tab1');
tab2 = uitab(tabs1, 'title', 'Tab2');
tab5 = uitab(tabs1, 'title', 'Tab5');
tab6 = uitab(tabs1, 'title', 'Tab6');

th1 = uicontrol('Parent', tab1, 'Style', 'text', 'String', 'Should be on tab1');

tabs2 = uitabgroup('Parent', tab1);
tab3 = uitab(tabs2, 'title', 'Tab3');
tab4 = uitab(tabs2, 'title', 'Tab4');
th2 = uicontrol('Parent', tab4, 'Style', 'text', 'String', 'Should be on tab4 which is on tab1');

th3 = uicontrol('Parent', tab2, 'Style', 'text', 'String', 'Should be on tab2');
第3页显示在tab6 !!即使父项是tab2,它们之间也有2个空标签。 我知道不可能使标签不可见(即使使用Java)。 有没有办法使这项工作正常? 我真的需要标签上的标签。

编辑: 选项卡编号出错了。

这是一张显示正在发生的事情的照片: https://www.dropbox.com/s/rhisqfrjxose8u9/tabs.png?dl=0 https://www.dropbox.com/s/rhisqfrjxose8u9/tabs.png?dl=0

1 个答案:

答案 0 :(得分:0)

我终于找到了答案。这是MATLAB中的一个错误。

Original post with answer is here

“在$ matlab / toolbox / matlab / uitools / @ uitools / @uitabgroup / schema.m 中,函数 updateVisibilityOfTabs (行R2014a中的250):

children = handle(findobj(getVisibleChildren(tabgroupRef),'Type','uitab');

需要添加

,'Parent',tabgroupRef);

到那个电话。

在$ matlab / toolbox / matlab / uitools / @ uitools / @uitab / updateVisibility.m

children = handle(findobj(get(tabgroup,'Chilren'),'Type','uitab');

添加类似的父标识符:

,'Parent',tabgroup);