I am attempting to declutter my MATLAB app code by separating some of the initialization into separate .m files. For this I have set up various files for each type of component (e.g. a file for buttons, graph, etc.). I am attempting to access a function in my master initialize file from the file for buttons. My code goes as follows in the buttons .m file goes as follow:
classdef buttons < handle methods %initializes the UI function buttonCreate(app) %Create file load 1 app.fileload1 = uibutton(app.gridLayout, 'push'); app.fileload1.FontSize = 36; app.fileload1.Layout.Row = [8 9]; app.fileload1.Layout.Column = 1; app.fileload1.Text = 'Load 1'; %proceeds to create the rest of the buttons end end end
Now I attempt to access the buttonCreate()
function in my master initialize file initialize.m
:
classdef initialize < handle properties fig gridLayout axes fileload1 end methods %initializes the UI function init(app) %create canvas import buttons.*; fig = uifigure; fig.Position = [100 100 1920 1080]; movegui(fig,'center'); fig.Name = "Audio Editor"; %Create grid layout gridLayout = uigridlayout(fig); gridLayout.ColumnWidth = {'1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x'}; gridLayout.RowHeight = {'1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x'}; buttonCreate(app); end end %code for calling and deleting methods %calls code to create canvas upon app start function app = initialize init(app) end %removes the app and deletes app.fig function delete(app) delete(app.fig); end end end
Error in initialize/init (line 41) buttonCreate(app); ^^^^^^^^^^^^^^^^^^ Error in initialize (line 54) init(app) ^^^^^^^^^
This resulted in the UIFigure
still being created, but with no button and the terminal giving the error given above.
NOTE:-
Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help , Finance Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.
Seems like you're doing some sort of combination of two distinct things:
- Use a simple function, which can be in its own .m file or one of the methods of your main class:
% in your initialise class constructor you still have buttonCreate(app);
% In buttonCreate.m function buttonCreate(app) % Create file load 1 app.fileload1 = uibutton(app.gridLayout, 'push'); app.fileload1.FontSize = 36; app.fileload1.Layout.Row = [8 9]; % ... end
- Use a class to hold references to all of your buttons, in which case the objects you create would be properties of that class, rather than the main app object:
SEE COMPLETE ANSWER CLICK THE LINK
Comments
Post a Comment