save variable from callback function of GUI
조회 수: 6 (최근 30일)
이전 댓글 표시
I'm trying to build a simple gui for my program, now i have to save the user input, but i can't retrieve data from callback function.
h.d = figure('Position',[300 300 400 200],'Name','Elaborazione di Mesh poligonali'); % position = [ x y xDim yDim ]
h.txt1 = uicontrol('Parent',h.d,...
'Style','text',...
'Position',[20 150 120 20],...
'String','Inserisci nome:');
h.txtBox1 = uicontrol('Parent',h.d,...
'Style','edit',...
'Position',[140 150 50 20],...
'String','Esempio',...
'Callback',@store_img);
h.btnOk = uicontrol('Parent',h.d,...
'Style','pushbutton',...
'Position',[85 20 70 25],...
'String','Avanti',...
'Callback',@btn_ok);
uiwait;
disp(h.txtBox1.UserData)
% Salvataggio input dell'utente
function store_img(hObject, event)
% hObject handle to pushbutton1 (see GCBO)
% event reserved - to be defined in a future version of MATLAB
data = hObject.String;
hObject.UserData = data;
end
function btn_ok( hObject, event)
close(gcf);
end
Command Window:
Invalid or deleted object.
Error in prova (line 20)
disp(h.txtBox1.UserData)
댓글 수: 0
채택된 답변
Murugan C
2019년 5월 5일
I think, we can get the vaiable using global variable. so we first decalre a gloabal varible ,here "data" is decared as lobal .
try this code.
function simple_gui
global data; % declare global varibale
h.d = figure('Position',[300 300 400 200],'Name','Elaborazione di Mesh poligonali'); % position = [ x y xDim yDim ]
h.txt1 = uicontrol('Parent',h.d,...
'Style','text',...
'Position',[20 150 120 20],...
'String','Inserisci nome:');
h.txtBox1 = uicontrol('Parent',h.d,...
'Style','edit',...
'Position',[140 150 50 20],...
'String','Esempio',...
'Callback',@store_img);
h.btnOk = uicontrol('Parent',h.d,...
'Style','pushbutton',...
'Position',[85 20 70 25],...
'String','Avanti',...
'Callback',@btn_ok);
uiwait(gcf);
disp(data)
end
% Salvataggio input dell'utente
function store_img(hObject, event)
% hObject handle to pushbutton1 (see GCBO)
% event reserved - to be defined in a future version of MATLAB
global data
data = get(hObject,'String');
set(hObject,'UserData', data)
end
function btn_ok( hObject, event)
close(gcf);
end
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!