以下均为自己的学习总结,有不对的地方,或者有更便捷的方法欢迎指正。
关于这部分的官方文档如下:
https://ww2.mathworks.cn/help/matlab/creating_guis/multiwindow-app-gui-in-app-designer.html
前言
多窗口之间的交互可大致分为两种
(1)不对主App进行改变
这一类简单来说就是不对主app进行任何改变,其功能只有打开一个新的窗口。应用场景比如平时经常遇到的登录界面,点击登录进入另一个窗口。
(2)对主App中进行某种改变
相反,这一类是通过一个或多个新的窗口,来对主app中进行某种改变。
改变也可以分为两类
1)无数据传递。比如删除等操作行为的确认对话框,点击确认则删除指定行的数据。不需要在另一个app中输入参数,传回主App。
2)有数据传递。比如为为主app中的表添加一行数据,这一行数据通过一个新的窗口进行输入。
1 不对主App进行改变
这一类很简单,以登录界面为例,只要在登录按钮的回调函数中,编写运行另一个窗口app的代码即可。
比如登录界面如下:

主程序app所保存的名称为 mainApp.mlapp
在登录窗口中编写登录按钮回调函数

此时通过点击登录按钮可以打开主界面程序,但是登录界面仍然存在。我们需要的效果是点击完登录后,登录界面消失,主界面弹出。因此在运行另一个窗口前,删除登录界面。

2 对主App中进行某种改变
2.1 无数据传递,返回一个行为
比如在对主程序中的数据进行删除时,弹出确认删除对话框。如确认则删除,取消则不删除。
举个栗子,要删除UITable中的某一行(如何实现见这篇文章),但在按下“Delete”键后,需要向用户确认是否删除。点击确认删除,否则不进行提醒窗口消失,不进行任何操作。

(1)创建提醒对话框App,此处另存为 DeleteApp.mlapp
(2)在对话框App中添加属性,存储主程序对象

本文详细讲解了MATLAB App Designer中如何创建多窗口应用,包括登录界面的实现、数据删除确认对话框、以及数据添加功能的传递。涉及无数据传递的确认对话框和有数据传递的表单输入操作。
最低0.47元/天 解锁文章
1万+





