Retrieve variables from inputdlg in a GUI

5 views (last 30 days)
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);

Accepted Answer

Geoff Hayes
Geoff Hayes on 7 May 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 Comments
Geoff Hayes
Geoff Hayes on 8 May 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

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!