我在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}}如何访问?
答案 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');