我使用 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
答案 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);