访问复制uipanel的儿童(Matlab)

时间:2016-09-28 15:30:54

标签: matlab matlab-figure

我在Matlab中创建了一个uipanel并在其上放置了一些uicontrols。复制面板时如何访问这些uicontrol?

示例:

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的{​​{1}}如何访问?

1 个答案:

答案 0 :(得分: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');