Я создал пользовательский интерфейс со многими edit text коробки, созданные в цикле, теперь я хочу сохранить пользовательские входы в переменной с callback.Управление несколькими обратными вызовами
Для примера рассмотрим этот код,
function p = myfun()
f = figure;
set(f,'Position',[200 350 250 150],'Color',[.4 .6 .4],'MenuBar','none',...
'Visible','off');
bc = [.4 .6 .4];
uicontrol('Style','text','Position',[50 80 80 30],...
'String','X','BackgroundColor',bc,'ForegroundColor','w');
uicontrol('Style','text','Position',[50 40 80 30],...
'String','Y','BackgroundColor',bc,'ForegroundColor','w');
uicontrol('style','edit','Position', [120 80 80 30],...
'BackgroundColor',bc,'ForegroundColor','w','Callback',{@My_Callback});
uicontrol('style','edit','Position', [120 40 80 30],...
'BackgroundColor',bc,'ForegroundColor','w','Callback',{@My_Callback});
uicontrol('Style', 'pushbutton', 'String', 'Ok',...
'Position', [100 5 60 30],'Callback', 'close');
movegui(f,'center')
set(f,'Visible','on')
function My_Callback(hObject,eventdata)
p = str2double(get(hObject,'string'));
end
end
Теперь My_Callback
будет называться два раза, но последний из них будет храниться только в p
.
Но я хочу, чтобы они хранились как p.x
и p.y
.
Я думаю, что я должен использовать Tag
, он говорит:
Tag
string (GUIDE sets this property)
User-specified object label. The Tag property provides a means to identify graphics objects with a user-specified label. This is particularly useful when constructing interactive graphics programs that would otherwise need to define object handles as global variables or pass them as arguments between callback routines. You can define Tag as any string.
Но я не знаю, как (у меня есть около 16 редактируемых коробки),
Спасибо за любую помощь.
Когда вы хотите читать значения из editbox, сразу после их ввода или после нажатия кнопки «Ok»? –
@MikhailGenkin, после нажатия 'ok', потому что пользователь может их изменить. Спасибо – Rashid