更改GUIDE对象

时间:2016-07-22 15:39:36

标签: matlab parent-child matlab-guide

我有一个带嵌套面板的Matlab GUIDE图。我还在面板顶部有控制对象。这是一个名义上的例子:

guide panels

为了对齐所有复选框,它们都需要位于同一个控件组中。我想移动复选框,使其父级是主面板而不是其中一个子面板。子面板只是用于视觉分组,并没有真正的功能价值。

对象浏览器显示关系,但我认为无法更改它。我已经尝试粘贴我想要移动到子面板外的对象并将它们拖回来,但它们会自动添加到子面板中。如果我粘贴在子面板外面,我可以使用箭头键将它们移回原来,父母将保留在主面板上,但这会变得乏味。

如何更改GUIDE控件对象的父面板?

1 个答案:

答案 0 :(得分:1)

使用guide构建GUI可能的解决方案可能是:

  • 添加主uipanel
  • 在主要的'uipanel'
  • 中添加所有checkbox
  • 对齐它们(例如,选择其中一些,然后使用指南工具栏上的Align Objects工具
  • 在某些uipanel上添加辅助checkbox。它将涵盖`复选框'
  • 选择辅助uipanel
  • 右键单击鼠标以弹出上下文菜单
  • 选择Send to Back选项

enter image description here

如果您想以编程方式创建GUI"你可以:

  • 创建figure
  • 使用uipanel
  • 添加主面板
  • 添加uicontrol复选框,将Style属性设置为checkboxposition属性,以便将它们放置在主面板中
  • 添加辅助uipanel。同样在这种情况下,辅助uipanel将屏蔽checkbox
  • 使用uistack功能
  • 推回辅助面板

Thsi是一种可能的实现

% Create the figure
figure
% Add the Main uipanel
p1=uipanel('units','normalized','position',[.1 .1 .5 .7],'title','Main Panel')
% Add come checkboxes
cb1=uicontrol('parent',p1,'style','checkbox','units','normalized', ...
   'position',[.1 .7 .3 .1],'string','checkbox 1')
cb2=uicontrol('parent',p1,'style','checkbox','units','normalized', ...
   'position',[.1 .6 .3 .1],'string','checkbox 2')
cb3=uicontrol('parent',p1,'style','checkbox','units','normalized', ...
   'position',[.1 .5 .3 .1],'string','checkbox 3')
% Add the Secondary uipanel
p2=uipanel('parent',p1,'units','normalized','position',[.05 .4 .4 .5], ...
   'title','Secondary Panel')
% Push the secondary uipanel back
uistack(p2,'bottom')

enter image description here

希望这有帮助。

Qapla'