2016-09-28 63 views
1

我已經在Matlab中創建了一個uipanel,並放置了一些uicontrols。我在複製面板時如何訪問這些uicontrols?訪問複製的uipanel的孩子(Matlab)

例子:

panel_a=uipanel(figure); 
editfield=uicontrol(panel_a, 'style','edit'); 
x=uitab(tabgroup); 
panel_b=copyobj(panel_a,x); 

tmp=panel_b.editfield.String;  <-- how do I write this? 

如何被訪問的panel_beditfield

+0

您明確地編輯框中複製因此它具有您指定的手柄還是你解析'TMP的''Children'' '找到複製對象的句柄。 – excaza

+0

有很多uicontrols訪問,複製每個會很煩人。解析tmp的'children'是什麼意思? – Emanrov

回答

1

如果您分配一個uicontrol價值Tag開始用,你可以用它來找到手感吧,一旦你把它複製到使用findobj新面板。

% Assign a 'Tag' value specific to this uicontrol 
editfield = uicontrol(panel_a, 'style', 'edit', 'tag', 'editfield'); 

% Copy your relevant objects 
panel_b = copyobj(panel_a, x); 

% Use findobj to locate the handle to the object of interest 
tmp = findobj(panel_b, 'Tag', 'editfield') 

或者,你可以使用findobj找到所有的編輯框

tmp = findobj(panel_b, 'Style', 'edit');