Can the start button of a GUI be pressed automatically?
2 views (last 30 days)
Show older comments
I have a matlab routine that runs a simulation that takes a long time (sometimes many hours). After starting the simulation, I can't use the command window for anything else until the simulation is complete because the simulation does not return to the command prompt until it is done. Sometimes I would start another instance of Matlab running so I could run other Matlab programs while the simulation is running. However, I prefer to have only one instance of Matlab running, so I modified the simulation so that it included a gui with a start button. The call back of the start button starts the simulation. This way, the simulation returns to the command prompt so I can enter other matlab commands while the simulation is running. Although this works well, I was wondering if there was any way the start button could be activated automatically as soon as the program was started. That would be more convenient. Also, at least once, I was dissappointed to find that after coming back several hours later it hadn't made any progress because I had forgotten to press the damn start button.
3 Comments
Answers (2)
Walter Roberson
on 15 Feb 2021
In that release, you would have been using GUIDE .
In the main .m file, there would be an OpenFcn callback. You will know it is the right one because it will probably have a commented out call to uiwait() or waitfor() .
The OpenFcn callback is invoked after the figure has been completely loaded and the handles structure has been created. It will be invoked automatically when you start the GUI by name or by double-clicking on the .m file for the GUI (do not double-click on the .fig file -- that does not initialize the code properly.)
You can alter the OpenFcn callback to put in a call to the function that does the actual work.
However, if you put in a direct call, and the function goes off and does the work, then the function is not going to return and you will not get back to the command line.
The work-around for that is to have the OpenFcn callback create a timer that invokes the function. Timers run in the background, so you should be able to use the command line.
0 Comments
See Also
Categories
Find more on Interactive Control and Callbacks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!