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

40 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Aylin
Aylin am 27 Dez. 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

Weitere Antworten (2)

Gary Stirk
Gary Stirk am 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

Gary Stirk
Gary Stirk am 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

Kategorien

Mehr zu Develop Apps Using App Designer 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