starbinbin_csu 发表于 2010-9-26 23:10:38

用GUI的tabstrip控件出现问题

如下图所示:
把那两个uipanel重合放在一起后,即使其中一个'visible'属性设为'off',另外一个'visible'属性设为'on'后,那个隐藏的uipanel还是会遮挡住显示的那个,请问怎么解决这个问题啊?


http://i3.6.cn/cvbnm/99/ae/e1/b2050a9f0e98afbaa022e44169e12a9b.jpg

qibbxxt 发表于 2010-9-27 08:35:05

我试了一下,matlab是将第一个panel放在上面,第二个panel放在下面的,如果想要你的这种效果,可以把第二个panel的visible属性设置为off

starbinbin_csu 发表于 2010-9-27 16:12:06

2# qibbxxt
谢谢回答!
可是我如果我想利用那个activeX控件令第一个的visible变成off第二个的变成on,可是显示出来的结果是第一个visible属性为off的uipanel挡住了那个visible属性为on的第二个panel,就像如下的情况:
http://i3.6.cn/cvbnm/37/76/0b/7228bdcb7c27c99a2b186c9c4995e0cb.jpg

starbinbin_csu 发表于 2010-9-27 16:18:37

2# qibbxxt
我找到了原因,就是在把第一个pannel拖到第二个pannel上的时候,第二个pannel会自动成为第一个pannel的一部分,请问怎么才能避免这种现象呢?

qibbxxt 发表于 2010-9-27 16:56:24

本帖最后由 qibbxxt 于 2010-9-27 19:26 编辑

4# starbinbin_csu
http://undocumentedmatlab.com/blog/tab-panels-uitab-and-relatives/
希望对你有用function tabBiaoQianMake
tabStrings = {'第一个标签', '第二个标签'};
= ...
tabdlg('create', tabStrings);

% put something on the sheets
a1 = axes('Parent',sheetPanels(1));
plot(rand(5),'Parent',a1);
ht = get(a1,'Title');
set(ht,'String','随机数绘制')

a2 = axes('Parent',sheetPanels(2));
t = 0:.01:2*pi;
plot(t, sin(t),'Parent',a2);
ht = get(a2,'Title');
set(ht,'String','正弦函数曲线绘制')

% put some buttons on the button panel
buttonStrings = {'OK','Apply','Cancel'};
buttonCallbacks = {'close(gcbf)','close(gcbf)','close(gcbf)'};
offsets = ;
pos = get(0,'defaultUicontrolPosition');
numControls = length(buttonStrings);
containerPos = getpixelposition(buttonPanel);
leftOffset = containerPos(3)/2 - ...
((numControls-1) * offsets(1) + numControls * pos(3))/2;
for i = 1:numControls
uicontrol(buttonPanel, ...
'Style','pushbutton', ...
'String', buttonStrings{i}, ...
'Position', ...
[offsets(1) * i + leftOffset + pos(3) * (i-1) ...
offsets(2)/2 pos(3:4)], ...
'Callback', buttonCallbacks{i});
end
figure(dialogFig)
不过matlab的帮助文件显示
tabdlg

This function is undocumented and will change in a future release


你自己再查一查吧

starbinbin_csu 发表于 2010-9-27 17:04:33

5# qibbxxt
非常感谢!我想了个办法,解决了,不过感觉没把问题将清楚,所以下面小结一下~~

总结:这种问题出现的原因就是如果利用guide建立gui界面的时候,将一般控件拖入uipannel时会自动设置被拖入的控件为uipanel的子控件,如果将两个uipanel拖在一起,也会出现这种现象,其中一个pannel变成了另外一个pannel的子控件,要解决这种问题,我尝试了一下可以利用guide编辑页面上工具栏上的“align objects”按钮,将多个uipanel选中,然后设置一种适当的对齐方式,并设置控件间隔为0,就可以实现了~~

alice_blue 发表于 2011-5-25 10:26:46

最近一直被这个问题困扰,楼上的提醒了我,不知道能不能把各个uipanel设置成同等关系,而不是“父子”关系呢
页: [1]
查看完整版本: 用GUI的tabstrip控件出现问题