访问复制的uipanel的子对象(Matlab)



我在Matlab中创建了一个ui面板,并在其上放置了一些ui控件。当我复制面板时,我如何访问这些ui控件?

例子:

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 ?

如果你给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');

最新更新