访问复制的 uipanel 的子项(Matlab)

Access children of copied uipanel (Matlab)

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

示例:

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');