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为第二个界面(显示账号)的命名,以自己定义的名字为准。

关于第二个界面(显示账号)的代码实现

  1. 设置一个私有属性存储第一界面的指针

    properties (Access = private)
        app_parent
        % 存储第一界面的指针      
    end  
  1. 设置startupFcn函数

上述app.TextArea是指所要显示管理员账号信息的文本区域,上图代码表示将第一个界面中的account赋值给文本区域。

存在问题

先运行第一个界面-->进入第二个界面(✔)

单独运行第二个界面(❌)

报错原因:输入参数的数目不足。

思考理由:此时没有运行第一个界面,故没有参数传递,所以输入的参数数目不足

以上为我在花费大量时间,浏览不少其他人的方法后得到的能够解决自己遇到的问题的最终成果,仅供参考,希望对大家有帮助。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值