关于MATLAB GUI之间的参数传递
我现在有两个GUI界面,简称GUI1和GUI2吧,GUI1上的某个按钮可以“召唤”出GUI2来。同时,GUI1会向GUI2传递变量,GUI2运行之后也会向GUI1传递变量...
我现在有两个GUI界面,简称GUI1和GUI2吧,GUI1上的某个按钮可以“召唤”出GUI2来。同时,GUI1会向GUI2传递变量,GUI2运行之后也会向GUI1传递变量。 因为网上很多GUI之间参数传递教程着实看不懂,所以就想用最直接的GLOBAL全局变量法,,,,我的问题就是:
如果在一个GUI1中定义了一个全局变量 并赋了值, 那么在GUI2中只要再申明一下,就可以直接用,并且赋新值么?谢谢了! 展开
如果在一个GUI1中定义了一个全局变量 并赋了值, 那么在GUI2中只要再申明一下,就可以直接用,并且赋新值么?谢谢了! 展开
2个回答
展开全部
global确实可以这样用,但在应用程序里这样用对变量是不安全的,因为任何地方都可以去修改这个全局变量,正规的方法不是这样的。
一般gui元素都可以绑定用户数据,你可以理解为C++类里面的public字段但matlab里面的用户字段更灵活,可以改变类型可以增删(删除一个字段用rmappdata),有两个函数setappdata和getappdata可以这样用:
假如figure1里有一个value1变量可供外部使用,在figure1里面你设置:
setappdata( fig1handle, 'value1', 100 );%如果有其他变量,继续设置就可以了,可以是任意类型
然后gui直接参数传递时只需要把gui元素的句柄传过去就行了,在figure2里访问figure1的value1变量:
value1 = getappdata( fig1handle, 'value1' );%就可以得到100
一般gui元素都可以绑定用户数据,你可以理解为C++类里面的public字段但matlab里面的用户字段更灵活,可以改变类型可以增删(删除一个字段用rmappdata),有两个函数setappdata和getappdata可以这样用:
假如figure1里有一个value1变量可供外部使用,在figure1里面你设置:
setappdata( fig1handle, 'value1', 100 );%如果有其他变量,继续设置就可以了,可以是任意类型
然后gui直接参数传递时只需要把gui元素的句柄传过去就行了,在figure2里访问figure1的value1变量:
value1 = getappdata( fig1handle, 'value1' );%就可以得到100
上海华然企业咨询
2024-10-21 广告
2024-10-21 广告
上海华然企业咨询有限公司专注于AI与数据合规咨询服务。我们的核心团队来自头部互联网企业、红圈律所和专业安全服务机构。凭借深刻的AI产品理解、上百个AI产品的合规咨询和算法备案经验,为客户提供专业的算法备案、AI安全评估、数据出境等合规服务,...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询