主要内容

以编程方式添加UI组件到应用程序设计器

大多数UI组件都可以在App Designer中使用组件库让您拖放到画布上。偶尔,您可能需要在代码视图中以编程方式添加组件。以下是一些常见情况:

  • 创建不可用的组件组件库.例如,一个显示对话框的应用程序必须调用适当的函数来显示对话框。

  • 根据运行时条件动态创建组件。

当以编程方式添加UI组件时,必须调用适当的函数来创建组件,为组件分配回调,然后将回调编写为helper函数。

创建组件并分配回调

从现有的回调函数中调用创建组件的函数(有关UI组件函数的列表,请参见)基于UIFIGURE的应用程序).的startupfcn.回调是创建组件的好地方,因为当应用程序启动时,回调会运行。在其他情况下,您可能会在不同的回调函数中创建组件。例如,如果您想在用户按下按钮时显示对话框,那么从按钮的回调函数中调用对话框函数。

当您调用一个函数来创建一个组件时,指定图形或它的一个子容器作为父对象。例如,这个命令创建一个按钮并指定图形为父对象。在本例中,图形具有App Designer分配的默认名称(app.UIFigure).

b = uibutton (app.UIFigure);

接下来,指定组件的回调属性作为表单的函数句柄@应用程序。callbackname.例如,该命令设置ButtonPushedFcn按钮的财产b到一个名为的回调函数mybuttonpress.

b.ButtonPushedFcn = @app.mybuttonpress;

编写回调

编写组件的回调函数作为私有助手函数。函数必须具有应用程序SRC., 和事件作为前三个论点。以下是作为私人帮助函数写入的回调的示例。

方法(Access = private) function mybuttonpress(app,src,event) disp('Have a nice day!');结束结束

要编写接受附加输入参数的回调函数,请在前三个参数之后指定附加参数。例如,这个回调接受两个额外的输入,xy

方法(Access = private) function addxy(app,src,event,x,y) disp(x + y);结束结束

要将此回调分配给组件,请将组件的回调属性指定为单元格数组。单元格阵列中的第一个元素必须是函数句柄。后续元素必须是附加输入值。例如:

b.ButtonPushedFcn = {@app.addxy, 10, 20};

示例:带有关闭功能的确认对话框

这个应用程序展示了如何显示一个确认对话框,当对话框关闭时执行一个回调。

当用户点击窗口的关闭按钮(X)时,会显示一个对话框,以确认用户想要关闭应用程序CloseFcn回调执行。

示例:基于数据文件填充树节点的应用程序

这个应用程序展示了如何在运行时动态添加树节点。这三个医院节点在应用程序运行之前就已经存在于树中。然而,在运行时,应用程序在每个医院名称下添加了几个子节点。的内容决定子节点的数量和子节点上的标签patients.xls电子表格。

当用户单击树中的患者名称时,患者信息面板显示年龄、性别和健康状况等数据。应用程序将更改存储到表数组中的数据。

相关话题