MATLAB Answers

How do I wait for an appdesigner pushbutton press from a script

293 views (last 30 days)
Gary Stirk
Gary Stirk on 22 Dec 2016
Answered: Gary Stirk on 3 Jan 2017
I have created a matlab script which calls an app designer gui. The gui has a selection of raido buttons to select a system frequency to be simulated. I want to pause the script until a I've pushed a SUBMIT button that is in the GUI.
I am getting the app handle and button handle ok from the script and have it working waiting onthe closure of the gui using the waitfor() function but I can't seem to get it to waif for the gui Button to be pressed.
clear all;
close all;
global modFreq; % system Freq set in GUI from radio button
%%instantiate my gui
guiHandle = mySystemConfigGui;
buttonHandle = guiHandle.RunButton;
%
waitfor(guiHandle);
fprintf('continuing script..\n');
How do I wait for an appdesigner pushbutton press from a script

  0 Comments

Sign in to comment.

Accepted Answer

Rylan Dmello
Rylan Dmello on 27 Dec 2016
Hello Gary,
You can use the uiwait function with the uiresume function instead of the waitfor function in order to pause execution while waiting for a button press. Please see the uiwait documentation page for an example:
https://www.mathworks.com/help/matlab/ref/uiwait.html
Note that you may have to register a new callback function in the button in order to run the uiresume function.
Rylan

  0 Comments

Sign in to comment.

More Answers (2)

Gary Stirk
Gary Stirk on 3 Jan 2017
Thanks Rylan,
This definitely got me over the hump. For a novice like myself the doc was not completely clear so I've given my final solution below possibly to help others. Notes:
1. The gui was created using app designer
2. I had to make the uiwait() parameter the giuFigure handle not the button handle.
3. Added the uiresume() with the parameter being the guiFigure handle used in the uiwait() of the .m program.
MatLab.m relevant code:
%%instantiate my gui
guiHandle = mySystemConfigGui;
%
guiFigureHandle = guiHandle.myConfigurationUIFigure;
uiwait(guiFigureHandle);
fprintf('continuing script..\n');
gui RunPushButtonPushed callback
% Button pushed function: RunButton
function RunButtonPushed(app, event)
uiresume(VeridianConfigurationUIFigure);
end

  0 Comments

Sign in to comment.


Gary Stirk
Gary Stirk on 3 Jan 2017
gui RunPushButtonPushed callback correction (uiresume() parameter should have had 'app.'prefix
% Button pushed function: RunButton
function RunButtonPushed(app, event)
uiresume( app.VeridianConfigurationUIFigure);
end

  0 Comments

Sign in to comment.