📜  如何在 MATLAB App 中创建 GUI 按钮?

📅  最后修改于: 2022-05-13 01:54:28.833000             🧑  作者: Mango

如何在 MATLAB App 中创建 GUI 按钮?

MATLAB 应用程序生成器有助于在 GUI 中构建应用程序,而无需具备适当的软件开发知识。 Matlab 帮助您使用它轻松创建专业应用程序。 Matlab App Builder 中有很多可用的组件。

第 1 步:打开 MATLAB 并选择 Design App。

设计应用程序

第 2 步:现在从“组件库”对话框中拖放“设计”选项卡中的按钮。它位于应用程序构建器窗口的最左侧。

MATLAB GUI 中的组件库

第 3 步:您可以根据自己的喜好自定义按钮,即可以在“组件浏览器”对话框下更改其许多属性。

MATLAB GUI 中的组件浏览器

第 4 步:这些不同的拖放选项可帮助您自定义按钮。

  • 按钮选项可帮助您更改按钮上的文本、更改其对齐方式以及设置图标及其在按钮上的对齐方式。
  • 字体和颜色可帮助您选择按钮的字体样式和颜色。
  • 交互性控制如何与用户相处。
  • Position指定按钮在定义的应用程序中的位置。
  • Callback Execution Control控制它的完整性
  • 父/子控制可见性
  • 标识符用于向按钮添加标签。

第 5 步:现在我们使用回调函数启用按钮函数。我们将通过示例来理解回调。首先,添加回调函数,右键单击按钮,选择Callbacks,然后添加ButtonPushedFcn回调。

ButtonPushedFcn 回调

它将在代码部分为您添加该函数,并且看起来像这样。

按钮代码

您可以在评论下方添加您的代码,您的代码在这里。每当单击按钮时,将执行这些代码。

让我们尝试通过实际示例来理解 Button 以使其具有功能。例如,我们想设计一个 MATLAB 应用程序来添加两个数字。

第 1 步:首先我们选择组件并拖放 3 个输入字段(数字)、一个按钮,并以您喜欢的方式排列它们。我们的应用看起来像这样

设计视图

第 2 步:对于上述设计,添加到我们代码中的代码行是:

% Properties that correspond to app components
    properties (Access = public)
        UIFigure                matlab.ui.Figure
        ResultLabel             matlab.ui.control.Label
        EnterSecondNumberLabel  matlab.ui.control.Label
        EnterFirstNumberLabel   matlab.ui.control.Label
        EditField3              matlab.ui.control.NumericEditField
        EditField3Label         matlab.ui.control.Label
        EditField2              matlab.ui.control.NumericEditField
        EditField2Label         matlab.ui.control.Label
        EditField               matlab.ui.control.NumericEditField
        EditFieldLabel          matlab.ui.control.Label
        AddButton               matlab.ui.control.Button
    end

第 3 步:现在在按钮上添加一个AddButtonPushed回调。

转到添加按钮

第 4 步:现在在编码部分,将创建函数。在函数中添加以下代码,使我们的按钮正常工作。

% Callbacks that handle component events
    methods (Access = private)

        % Button pushed function: AddButton
        function AddButtonPushed(app, event)
            % Taking input from num field 1
            a = app.Num1EditField.Value;
            % Taking input from num field 1
            b = app.Num2EditField.Value;

            % Calculating Sum
            c = a+b;
            % Displaying Output
            app.AnswerEditField.Value = c;
            
        end
    end

示例 1:


输出:

MATLAB 应用程序添加

现在再举一个例子,使用 Button 组件计算任意数字的平方。为此选择两个标签、两个输入字段(数字)和一个按钮。我们的应用看起来像这样

正方形的设计视图

示例 2:

Matlab
% MATLAB code for Button component
classdef appadd1 < matlab.apps.AppBase
 
    % Properties that correspond to app components
    properties (Access = public)
        UIFigure                matlab.ui.Figure
        ResultLabel             matlab.ui.control.Label
        EnterNumberLabel        matlab.ui.control.Label
        EditField2              matlab.ui.control.NumericEditField
        EditField               matlab.ui.control.NumericEditField
        ClickButton             matlab.ui.control.Button
    end
 
    % Callbacks that handle component events
    methods (Access = private)
 
        % Button pushed function: ClickButton
        function ClickButtonPushed(app, event)
            
           % Taking input from num field 1
            a = app.EditField.Value; 
            c = a*a;
            
           % Displaying Output
            app.EditField2.Value = c;
        end
    end
 
    % Component initialization
    methods (Access = private)
 
        % Create UIFigure and components
        function createComponents(app)
 
            % Create UIFigure and hide until all components are created
            app.UIFigure = uifigure('Visible', 'off');
            app.UIFigure.Position = [100 100 640 480];
            app.UIFigure.Name = 'MATLAB App';
 
            % Create ClickButton
            app.ClickButton = uibutton(app.UIFigure, 'push');
            app.ClickButton.ButtonPushedFcn = createCallbackFcn(app, @ClickButtonPushed, true);
            app.ClickButton.Position = [188 278 100 22];
            app.ClickButton.Text = 'Click';
 
            % Create EditField
            app.EditField = uieditfield(app.UIFigure, 'numeric');
            app.EditField.Position = [287 397 146 40];
 
            
            % Create EditField3
            app.EditField2 = uieditfield(app.UIFigure, 'numeric');
            app.EditField2.Position = [287 329 138 52];
 
            % Create EnterNumberLabel
            app.EnterNumberLabel = uilabel(app.UIFigure);
            app.EnterNumberLabel.Position = [21 403 107 43];
            app.EnterNumberLabel.Text = 'Enter  Number';
             
            % Create ResultLabel
            app.ResultLabel = uilabel(app.UIFigure);
            app.ResultLabel.Position = [21 352 70 46];
            app.ResultLabel.Text = 'Result';
 
            % Show the figure after all components are created
            app.UIFigure.Visible = 'on';
        end
    end
 
    % App creation and deletion
    methods (Access = public)
 
        % Construct app
        function app = appadd1
 
            % Create UIFigure and 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



输出:

MATLAB App - 正方形