2016-09-28 2 views
1

Ich habe ein Uipanel in Matlab erstellt und einige Uicontrols darauf platziert. Wie kann ich auf diese uicontrols zugreifen, wenn ich das Panel kopiere?Zugriff auf Kinder von kopierten Uipanel (Matlab)

Beispiel:

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? 

Wie wird editfield von panel_b zugegriffen?

+0

Sie entweder explizit das Eingabefeld kopieren, um sie mit einem Griff hat man das ' 'Children'' von' tmp angeben oder Sie analysieren 'um das Handle für das kopierte Objekt zu finden. – excaza

+0

es gibt viele uicontrols zu erreichen, das Kopieren wäre lästig. Was meinst du damit, die "Kinder" von tmp zu analysieren? – Emanrov

Antwort

1

Wenn Sie den Wert uicontrol zunächst einem Tag-Wert zuweisen, können Sie damit das Handle dazu finden, nachdem Sie es mit findobj in das neue Bedienfeld kopiert haben.

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

Alternativ können Sie findobj verwenden, um alle Bearbeitungsfelder finden

tmp = findobj(panel_b, 'Style', 'edit'); 
Verwandte Themen