2016-09-28 5 views
1

Я создал uipanel в Matlab и разместил на нем некоторые 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? 

Как editfield из panel_b доступ?

+0

Вы либо явно скопировать окно редактирования, так что имеет ручку вы указываете или разобрать ' 'Children'' из' TMP 'найти дескриптор скопированного объекта. – excaza

+0

есть много uicontrols для доступа, копирование каждого будет раздражать. что вы понимаете, анализируя «детей» tmp? – 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'); 
Смежные вопросы