How to invoke a matlab.apps.AppBase based class without App Designer?

My App Designer app takes impossibly long to save (20 to 30 seconds) every time I want to do a test run. So I'm trying a different strategy: once and for all, copy all the code out of the app designer code view and make a .m file of it. Then run that. Unfortunately, this simply defines the class and then exits. It does not create a window or run the class within that window.
Can this work? Is there some way I can make a stub of a main program that invokes my app class in this fashion?

回答(1 个)

Hi Kenneth,
I think that should work. Have you saved the *.m file with the same name as the *.mlapp? Otherwise you should rename classdef accordingly, as well as the name of the construct app function, namely
classdef newAppName < matlab.apps.AppBase
% Your app
% App creation and deletion
methods (Access = public)
% Construct app
function app = newAppName
end
% Delete app
end
end

3 个评论

I still don't understand what I need to say to INVOKE this class, to make it do something. Where will I put the first line of code that gets run?
Let's consider your mlapp file was oldAppName.mlapp, in that case the class name will be oldAppName, namely
classdef oldAppName < matlab.apps.AppBase
and the constructor line will have the same oldAppName reference.
If you copy-paste your code from AppDesigner to a newAppName.m file, you have to modify the class name and the constructor accordingly, as I indicated in the previous comment.
I hope this help.
Best,
Alberto
You are still missing my question. Where is the first line of code that gets run when I run this app? Is it the app constructor? I can see where the .mlapp file DEFINES the app class, but what INSTANTIATES it?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Develop Apps Using App Designer 的更多信息

产品

版本

R2023b

标签

提问:

2024-2-2

评论:

2024-2-6

Community Treasure Hunt

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

Start Hunting!

Translated by