如何在 MATLAB App 中创建 GUI 按钮?
MATLAB 应用程序生成器有助于在 GUI 中构建应用程序,而无需具备适当的软件开发知识。 Matlab 帮助您使用它轻松创建专业应用程序。 Matlab App Builder 中有很多可用的组件。
第 1 步:打开 MATLAB 并选择 Design App。
第 2 步:现在从“组件库”对话框中拖放“设计”选项卡中的按钮。它位于应用程序构建器窗口的最左侧。
第 3 步:您可以根据自己的喜好自定义按钮,即可以在“组件浏览器”对话框下更改其许多属性。
第 4 步:这些不同的拖放选项可帮助您自定义按钮。
- 按钮选项可帮助您更改按钮上的文本、更改其对齐方式以及设置图标及其在按钮上的对齐方式。
- 字体和颜色可帮助您选择按钮的字体样式和颜色。
- 交互性控制如何与用户相处。
- Position指定按钮在定义的应用程序中的位置。
- Callback Execution Control控制它的完整性。
- 父/子控制可见性。
- 标识符用于向按钮添加标签。
第 5 步:现在我们使用回调函数启用按钮函数。我们将通过示例来理解回调。首先,添加回调函数,右键单击按钮,选择Callbacks,然后添加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:
吨
输出:
现在再举一个例子,使用 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
输出: