在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天,研究了一下不同GUI之间的参数传递方法,Matlab中GUI之间参数传递不如VC一样简单,易于理解,但是如果理解了,也是有章可循的,传说的具有六种方法,介绍其中的一种,如下所示: **运用gui本身的varain{}、varaout{}传递参数。 上面介绍的方法只是适用于主从GUI之间传递参数,即从主GUI调用子GUI,然后关掉子GUI,子GUI的参数就传递到了主GUI,比如子GUI的名称为subGUI, 设想的参数输入输出为:[out1, out2] = subGUI(in1, in2) 综上所述:一是,两点需要注意,uiwait和uiresume的使用位置和使用时机,二是,delete句柄的位置……
延续以前的博文,今天介绍一下方法二,利用setappdata和getappdata函数进行不同GUI之间的参数传递问题。getappdata函数,VALUE=getappdata(H,NAME);setappdata函数,setappdata(H,NAME,VALUE)。具体地应用如下所示: 当在主子gui内调用时,可以如下设置:fig1调用fig2时,使用fig2指令来打开fig2,在fig2的m文件中,在回调函数中用setappdata(fig1,'A',A)实现返回fig1,并将参数A传递给fig1,然后在fig1的使用A的地方添A=getappdata(fig1,‘A’)。但这种方式的一个问题就是没调用一次,fig1的数据就得初始化一次,这是因为setappdata(fig1,'A',A)中出现了fig1,调用一次setappdata就得运行一次fig1的缘故,解决方案就是把setappdata(fig1,'A',A)改为setappdata(0,'A',A),这样把A读入matlab workspace,相当于一个全局变量了,但当然比直接用global定义全局变量好!必须注意的是:在主程序和子程序中均要用0,否则不管用…… 此方法和第一种的不同即:第一种是启动主程序后,再启动子程序,进行设置参数,而这一种方法是先启动子程序,设置好参数后,启动主程序,这是参数已经传到主程序…… 前面有了两种方法了,今天就研究一下第三种方法,这种方法在GUI内的数据传递也是比较常用的:全局变量。 这种方式恐怕是最简单的方式,是很省心!但是,简单的问题就在于有时你会很头疼! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论