Skip to content
This repository was archived by the owner on Nov 25, 2018. It is now read-only.
This repository was archived by the owner on Nov 25, 2018. It is now read-only.

Maybe I'm missing something? Conversion issue #9

Open
@ksingh49

Description

@ksingh49

Hey,

Please excuse me if this has a really easy solution but I'm farily new to matlab and coding in general.

So I've been using mlapp2classdef to convert a simple app I made in App Designer just to test if I can end up with a final standalone file that works. The sample is just an axes with a push button that plots cos(x) after it is pushed. After I run the conversion, mlapp2classdef([], 'ReplaceAppUI, true) I get an error saying:

While setting property 'UIAxes' of class 'testclick': Value must be 'matlab.ui.control.UIAxes'. Error in testclick/createComponents (line 39) app.UIAxes = axes(app.UIFigure); Error in testclick (line 79) createComponents(app)

My file name is "testclick". Here is the code that the conversion generates from my sample.

classdef testclick < matlab.apps.AppBase

    % Properties that correspond to app components
    properties (Access = public)
        [email protected]
        [email protected]
        [email protected]
        [email protected]
        [email protected]
        [email protected]
        [email protected]
    end

    methods (Access = private)

        % Button pushed function: Plot
        function PlotPushed(app, event)
            x=0:.01:100;
            y=cos(x);
            plot(app.UIAxes,x,y);
            app.XEditField.Value=10;
            app.YEditField.Value=100;
        end
    end

    % App initialization and construction
    methods (Access = private)

        % Create UIFigure and components
        function createComponents(app)

            % Create UIFigure
            app.UIFigure = figure;
            app.UIFigure.Position = [100 100 634 308];
            app.UIFigure.Name = 'UI Figure';
            setAutoResize(app, app.UIFigure, true)

            % Create UIAxes
            app.UIAxes = axes(app.UIFigure);
            title(app.UIAxes, 'Title');
            xlabel(app.UIAxes, 'X');
            ylabel(app.UIAxes, 'Y');
            app.UIAxes.Position = [259 80 300 185];

            % Create Plot
            app.Plot = uicontrol('Parent', app.UIFigure, 'push', 'Style', 'pushbutton');
            app.Plot.ButtonPushedFcn = createCallbackFcn(app, @PlotPushed, true);
            app.Plot.Position = [96 216 100 22];
            app.Plot.Text = 'Plot';

            % Create XEditFieldLabel
            app.XEditFieldLabel = uicontrol('Parent', app.UIFigure, 'Style', 'text');
            app.XEditFieldLabel.HorizontalAlignment = 'right';
            app.XEditFieldLabel.Position = [56 165 25 15];
            app.XEditFieldLabel.Text = 'X';

            % Create XEditField
            app.XEditField = uicontrol('Parent', app.UIFigure, 'numeric', 'Style', 'edit');
            app.XEditField.Position = [96 161 100 22];

            % Create YEditFieldLabel
            app.YEditFieldLabel = uicontrol('Parent', app.UIFigure, 'Style', 'text');
            app.YEditFieldLabel.HorizontalAlignment = 'right';
            app.YEditFieldLabel.Position = [57 118 25 15];
            app.YEditFieldLabel.Text = 'Y';

            % Create YEditField
            app.YEditField = uicontrol('Parent', app.UIFigure, 'numeric', 'Style', 'edit');
            app.YEditField.Position = [97 114 100 22];
        end
    end

    methods (Access = public)

        % Construct app
        function app = testclick()

            % Create and configure components
            createComponents(app)

            % Register the app with App Designer
            % Function call removed

            if nargout == 0
                clear app
            end
        end

        % Code that executes before app deletion
        function delete(app)

            % Delete UIFigure when app is deleted
            delete(app.UIFigure)
        end
    end
end

And lastly here is the code converted just with mlapp2classdef([])

classdef testclick < matlab.apps.AppBase

    % Properties that correspond to app components
    properties (Access = public)
        UIFigure         matlab.ui.Figure
        UIAxes           matlab.ui.control.UIAxes
        Plot             matlab.ui.control.Button
        XEditFieldLabel  matlab.ui.control.Label
        XEditField       matlab.ui.control.NumericEditField
        YEditFieldLabel  matlab.ui.control.Label
        YEditField       matlab.ui.control.NumericEditField
    end

    methods (Access = private)

        % Button pushed function: Plot
        function PlotPushed(app, event)
            x=0:.01:100;
            y=cos(x);
            plot(app.UIAxes,x,y);
            app.XEditField.Value=10;
            app.YEditField.Value=100;
        end
    end

    % App initialization and construction
    methods (Access = private)

        % Create UIFigure and components
        function createComponents(app)

            % Create UIFigure
            app.UIFigure = uifigure;
            app.UIFigure.Position = [100 100 634 308];
            app.UIFigure.Name = 'UI Figure';
            setAutoResize(app, app.UIFigure, true)

            % Create UIAxes
            app.UIAxes = uiaxes(app.UIFigure);
            title(app.UIAxes, 'Title');
            xlabel(app.UIAxes, 'X');
            ylabel(app.UIAxes, 'Y');
            app.UIAxes.Position = [259 80 300 185];

            % Create Plot
            app.Plot = uibutton(app.UIFigure, 'push');
            app.Plot.ButtonPushedFcn = createCallbackFcn(app, @PlotPushed, true);
            app.Plot.Position = [96 216 100 22];
            app.Plot.Text = 'Plot';

            % Create XEditFieldLabel
            app.XEditFieldLabel = uilabel(app.UIFigure);
            app.XEditFieldLabel.HorizontalAlignment = 'right';
            app.XEditFieldLabel.Position = [56 165 25 15];
            app.XEditFieldLabel.Text = 'X';

            % Create XEditField
            app.XEditField = uieditfield(app.UIFigure, 'numeric');
            app.XEditField.Position = [96 161 100 22];

            % Create YEditFieldLabel
            app.YEditFieldLabel = uilabel(app.UIFigure);
            app.YEditFieldLabel.HorizontalAlignment = 'right';
            app.YEditFieldLabel.Position = [57 118 25 15];
            app.YEditFieldLabel.Text = 'Y';

            % Create YEditField
            app.YEditField = uieditfield(app.UIFigure, 'numeric');
            app.YEditField.Position = [97 114 100 22];
        end
    end

    methods (Access = public)

        % Construct app
        function app = testclick()

            % Create and configure components
            createComponents(app)

            % Register the app with App Designer
            registerApp(app, app.UIFigure)

            if nargout == 0
                clear app
            end
        end

        % Code that executes before app deletion
        function delete(app)

            % Delete UIFigure when app is deleted
            delete(app.UIFigure)
        end
    end
end

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions