找回密码
 注册
Simdroid-非首页
查看: 131|回复: 6

用GUI的tabstrip控件出现问题

[复制链接]
发表于 2010-9-26 23:10:38 | 显示全部楼层 |阅读模式 来自 湖南长沙
如下图所示:
把那两个uipanel重合放在一起后,即使其中一个'visible'属性设为'off',另外一个'visible'属性设为'on'后,那个隐藏的uipanel还是会遮挡住显示的那个,请问怎么解决这个问题啊?


发表于 2010-9-27 08:35:05 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
我试了一下,matlab是将第一个panel放在上面,第二个panel放在下面的,如果想要你的这种效果,可以把第二个panel的visible属性设置为off

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-27 16:12:06 | 显示全部楼层 来自 湖南长沙
2# qibbxxt
谢谢回答!
可是我如果我想利用那个activeX控件令第一个的visible变成off第二个的变成on,可是显示出来的结果是第一个visible属性为off的uipanel挡住了那个visible属性为on的第二个panel,就像如下的情况:


回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-27 16:18:37 | 显示全部楼层 来自 湖南长沙
2# qibbxxt
我找到了原因,就是在把第一个pannel拖到第二个pannel上的时候,第二个pannel会自动成为第一个pannel的一部分,请问怎么才能避免这种现象呢?
回复 不支持

使用道具 举报

发表于 2010-9-27 16:56:24 | 显示全部楼层 来自 河北廊坊
本帖最后由 qibbxxt 于 2010-9-27 19:26 编辑

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

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

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

  15. % put some buttons on the button panel
  16. buttonStrings = {'OK','Apply','Cancel'};
  17. buttonCallbacks = {'close(gcbf)','close(gcbf)','close(gcbf)'};
  18. offsets = [5 5];
  19. pos = get(0,'defaultUicontrolPosition');
  20. numControls = length(buttonStrings);
  21. containerPos = getpixelposition(buttonPanel);
  22. leftOffset = containerPos(3)/2 - ...
  23. ((numControls-1) * offsets(1) + numControls * pos(3))/2;
  24. for i = 1:numControls
  25. uicontrol(buttonPanel, ...
  26. 'Style','pushbutton', ...
  27. 'String', buttonStrings{i}, ...
  28. 'Position', ...
  29. [offsets(1) * i + leftOffset + pos(3) * (i-1) ...
  30. offsets(2)/2 pos(3:4)], ...
  31. 'Callback', buttonCallbacks{i});
  32. end
  33. figure(dialogFig)
复制代码
不过matlab的帮助文件显示

  1. tabdlg

  2.   This function is undocumented and will change in a future release


复制代码
你自己再查一查吧
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-27 17:04:33 | 显示全部楼层 来自 湖南长沙
5# qibbxxt
非常感谢!我想了个办法,解决了,不过感觉没把问题将清楚,所以下面小结一下~~

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

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-5-25 10:26:46 | 显示全部楼层 来自 广西桂林
最近一直被这个问题困扰,楼上的提醒了我,不知道能不能把各个uipanel设置成同等关系,而不是“父子”关系呢
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 09:22 , Processed in 0.041413 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表