Retrieve variables from inputdlg in a GUI
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Yasser Eljajeh
el 7 de Mayo de 2020
Comentada: Yasser Eljajeh
el 8 de Mayo de 2020
Hi,
I have built a GUI where the callback of 'Project Menu' has an input dialog as below code.
The GUI also has a bushbutton which requires the values which were input in the inputdlg.
Is there any way to retrieve the values of 'Project Name' and 'Project Number' to use in the bushbutton callback?
Thanks,
Prompt={'Project Name','Project Number'};
dlg_title='Project Info';
def= {' ',' '};
num_lines = [ones(size(def')) ones(size(def'))*75];
options.Resize='on';
options.Windowstyle='modal';
options.Interpreter='tex';
Project=inputdlg(Prompt,dlg_title,num_lines,def,options);
0 comentarios
Respuesta aceptada
Geoff Hayes
el 7 de Mayo de 2020
Yasser - assuming that the user doesn't press cancel, then the project name and number can be retrieved from the cell array Project
projectName = Project{1};
projectNumberAsString = Project{2};
5 comentarios
Geoff Hayes
el 8 de Mayo de 2020
Yasser - so your input dialog is launched from a menu item? So your current menu button callback may look like
% --------------------------------------------------------------------
function projectinfo_Callback(hObject, eventdata, handles)
% hObject handle to projectinfo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Prompt={'Project Name','Project Number'};
dlg_title='Project Info';
def= {' ',' '};
num_lines = [ones(size(def')) ones(size(def'))*75];
options.Resize='on';
options.Windowstyle='modal';
options.Interpreter='tex';
Project=inputdlg(Prompt,dlg_title,num_lines,def,options);
% <----- Add this code to save the output
if ~isempty(Project)
handles.projectName = Project{1};
handles.projectNumberAsString = Project{2};
else
% handle case where dialog is closed without inputs
handles.projectName = 'defaultProjectName';
handles.projectNumberAsString = 'defaultProjectNumber';
end
guidata(hObject, handles); % <----- saves the updated handles structure
So now the project information is saved to the handles structure. You can then access this data from your pushbutton callback as
if isfield(handles, 'projectName')
projectName = handles.projectName;
projectNumberAsString = handles.projectNumberAsString;
% do something
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Whos en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!