save variable from callback function of GUI

6 Ansichten (letzte 30 Tage)
Fabio Righetti
Fabio Righetti am 5 Mai 2019
Beantwortet: Murugan C am 5 Mai 2019
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)

Akzeptierte Antwort

Murugan C
Murugan C am 5 Mai 2019
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

Weitere Antworten (0)

Kategorien

Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by