2016-07-22 44 views
1

我有一個帶有嵌套面板的Matlab GUIDE圖。我也在面板頂部有控制對象。這裏有一個概念上的例子:更改GUIDE對象的父面板

guide panels

爲了對齊所有複選框,他們都需要是相同的控制小組。我想移動複選框,使他們的父母是主面板而不是其中一個子面板。子面板只是用於可視化分組,並沒有真正的功能價值。

對象瀏覽器顯示關係,但我沒有辦法改變它。我嘗試粘貼要移動到子面板之外的對象,然後將其拖回到子面板中,但它們會自動添加到子面板中。如果我在子面板之外粘貼,我可以使用箭頭鍵將它們移回,父母將保留主面板,但這會變得乏味。

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

+0

@Suever,不確定您的答案被刪除之前是否看到我的回覆。我希望能夠對齊來自多個子面板的組件,因此它們都需要位於同一個控制組中。 –

回答

1

構建GUI與guide一個可能的解決方案是:

  • 增加主要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'

+0

這很好,假設我提前計劃了所有事情。當我建立在我已經創建的東西上時,問題就出現了。我寧願不必刪除輔助面板,添加新按鈕,然後重新添加面板。 –