matlabGUI界面设计——appdesigner不同app之间的数据传递方法
本文实现的功能是在第一个界面中输入了个人的账号信息,在第二个界面中显示出第一个界面里输入的个人账号信息。主要是有关于不同窗口之间数据传递的一种解决方法。
·
实现功能介绍
本人想实现的功能是在第一个界面中输入了个人的账号信息,在第二个界面中显示出第一个界面里输入的个人账号信息。最终实现截图如下:
本文仅针对介绍与不同app之间数据传递有关的代码。
具体实现方法
首先介绍私有/共有函数,私有/共有属性,startupFcn
由上图matlab自带介绍可知私有/公有函数和私有/公有属性的不同使用方法,我们需要的是在不同app之间进行数据传递,所以针对传递的账号数据使用共有属性定义。我在使用中发现公有属性仅需要在第一个界面app中进行定义即可。
本人在寻找startupFcn函数的过程中浪费了较长时间,最终无意发现点击App输入参数,即会跳出startupFcn函数创建。此时根据具体情况,即要传递的参数数量,参数名称补全startupFcn函数。
关于第一个界面(输入账号)的代码实现
1.创建一个公共属性account。
properties (Access = public)
account
% 保存账号
end
2.在登录按钮的点击回调函数中的相关代码如下:
water4(app,app.account);
%调用第二个界面,同时将第一个界面句柄(app)作为第二个界面初始化的参数传入
注意:其中water4为第二个界面(显示账号)的命名,以自己定义的名字为准。
关于第二个界面(显示账号)的代码实现
-
设置一个私有属性存储第一界面的指针
properties (Access = private)
app_parent
% 存储第一界面的指针
end
-
设置startupFcn函数
上述app.TextArea是指所要显示管理员账号信息的文本区域,上图代码表示将第一个界面中的account赋值给文本区域。
存在问题
先运行第一个界面-->进入第二个界面(✔)
单独运行第二个界面(❌)
报错原因:输入参数的数目不足。
思考理由:此时没有运行第一个界面,故没有参数传递,所以输入的参数数目不足
以上为我在花费大量时间,浏览不少其他人的方法后得到的能够解决自己遇到的问题的最终成果,仅供参考,希望对大家有帮助。
更多推荐



所有评论(0)