利用matlab的appdeisgner创建两个简单的App并传递数据
matlab创建两个app使其之间传递数据
今天刚学的app传递数据,为了巩固一下知识,做了个简单的app,希望能帮到大家。两个app之间传递数据,最难的部分就是如何让两个app去建立联系,还有在一个app中可能需要用另一个app的内容作为初始化内容。下面是基本的模板:
(主)
(辅)
首先第一步就是把最基本的模板给布置好,并把每个控件的功能给想好,我的模板要完成的功能是点击主界面的add会将辅界面给打开,在辅界面中将信息输入,点击sure,将把信息放在主界面的表格中。
第二步先将主界面进行初始化:
function startupFcn(app)
app.UITable.ColumnName(1)={'姓名'};
app.UITable.ColumnName(2)={'学号'};
app.UITable.ColumnName(3)={'班级'};
app.UITable.ColumnName(4)={'年级'};
app.UITable.ColumnName(5)={'身份'};
end
第三步,因为要将辅界面得到内容更新到主界面,所以要在主界面中创建一个全局函数updata(其功能就是将数据更新到主界面);代码如下:
methods (Access = public)
function updata(app,name,number,class,year,identity)
app.NAME=name;
app.NUMBER=number;
app.CLASS=class;
app.YEAR=year;
app.IDENTITY=identity;
team={string(name) string(number) string(class) string(year) string(identity)};
app.UITable.Data=[app.UITable.Data;cell2table(team)];
end
end
其中全局变量有:
properties (Access = private)
NAME;
NUMBER;
CLASS;
YEAR;
IDENTITY;
end
第四步就是让主界面去调用辅界面,按下add控件就将其打开(如果不让辅界面也有初始化的数据内容,那么就不需要在app2(app, , , ,)里面再加别的参数,如果需要初始化数据,则需要在里面添加参数,然后在app2中显示出来,显示是在app2的startupfcn中完成的,app2(app)与app2的初始化函数是对接的关系),代码如下:
function addButtonPushed(app, event)
app.addButton.Enable='off';
app2(app);
end
这样就将app2给打开了;
第五步对app2进行初始化(里面的参数直接与app2(app)里面的参数对接,因为在app2(app)里面没有加别的参数,所以这里面的参数除了mainapp其他都可忽略,mainapp的作用是告诉app2主界面是app1),代码如下:
function startupFcn(app, mainapp, name, number, class, year, identity)
app.ListBox.Items(1)={'班长'};
app.ListBox.Items(2)={'团支书'};
app.ListBox.Items(3)={'普通干部'};
app.ListBox.Items(4)={'学生'};
app.DropDown.Items(1)={'2020'};
app.DropDown.Items(2)={'2021'};
app.DropDown.Items(3)={'2022'};
app.DropDown.Items(4)={'2023'};
app.Node.Text='通信工程';
app.Node_2.Text='一班';
app.Node_3.Text='二班';
app.Node_4.Text='三班';
app.callingapp=mainapp;
end
第六步数控件的使用,就是判断其下方还有没有子节点,如果有就让他继续选择,如果没有就将现在点击的部位显示的内容返回过来;代码如下:
function TreeSelectionChanged(app, event)
selectedNodes = app.Tree.SelectedNodes;
if isempty(selectedNodes.Children)
app.a1=selectedNodes.Text;
else
app.a1='';
end
end
第七步让app2中输入的数据更新到app1的表格当中,就是去调用app1中的全局函数updata(一定是个公有的全局函数),代码如下:
function sureButtonPushed(app, event)
updata(app.callingapp,app.EditField.Value,app.EditField_2.Value,string(app.a1),string(app.DropDown.Value), string(app.ListBox.Value))
app.callingapp.addButton.Enable='on';
delete(app);
end
这样就将数据给返回给表格;
最后要想去在app2中调用app1的button控键,需要在app2中建立一个全局变量,用来读取mainapp,然后调用这个全局变量.。。。button即可,若想让app1里面的控件不可使用,可以:app.callingapp.addButton.Enable='off';即可
更多推荐
所有评论(0)