MATLBA GUI设计之按钮之间的数据传递

一、问题说明


         经常在设计MATLAB  GUI的时候,想按下一个按键,程序循环运行,直到你想让他停下来,他才停下来为止。这个时候就需要几个按钮之间的数据传递。


二、问题的解决办法


如何解决按下一个按钮程序循环运行,直到你按下另一个键的时候,程序退出。其基本思路的是设置一个flag,当第一个按键按下的时候程序循环运行,每次循环一次都要判断flag的值,当第二个键按下的时候,更改flag的值,循环程序检测到了flag值得的时候,就退出循环,直到程序运行结束。


举个例子,设立两个按钮,并到他们的callback中去:

首先,要在OpeningFcn函数中设立一个变量handles.value = 0;

</pre><span style="white-space:pre">	</span><pre name="code" class="cpp">function TEST_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

handles.value = 0;

guidata(hObject, handles);


然后在button1中建立一个循环程序

function button1_Callback(hObject, eventdata, handles)

while 1
  ...
  pause(1e-100);   %这句话相当重要
  handles = guidata(hObject); 
  if handles.value == 1
     handles.value = 0;
     break;
  end
  ...

end


之后在button2中更改handles.value的值

<strong><span style="font-size:24px;">function button2_Callback(hObject, eventdata, handles)

handles.value = 1;
guidata(hObject,handles);</span></strong>

在主循环中必须加上一个时间很短的暂停,用于检测第二个按钮是否按下,并缸盖handles.value的值。


这样就可以在你想要退出程序的即可退出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值