0
A
回答
2
您是否使用指南或“纲领性”鬼?以下是程序化gui的一个小例子;类似的概念可能适用于GUIDE。 (我个人比较喜欢的编程GUI路线的更大的灵活性,再加上我总是最终无可挽回地打破任何向导GUI的创建...)
反正几件事情要在这个例子说明:
- 使用gui的图形处理UserData字段来存储“全局”信息。这是在回调之间传递数据的一种方式。
需要在“无限”循环中的暂停语句,以便处理来自cb_button2的中断。从Matlab help开始:“如果回调执行的对象的Interruptible属性为开启状态,则回调可能会中断,但只有当它或触发的函数调用drawnow,figure,getframe,pause或waitfor “。
function my_gui(varargin) mainfig = figure; out.h_button1 = uicontrol(mainfig,... 'Style','pushbutton',... 'Units','Normalized',... 'Position',[0,0.5,1,0.5],... 'String','Button 1',... 'Callback',@cb_button1); out.h_button2 = uicontrol(mainfig,... 'Style','pushbutton',... 'Units','Normalized',... 'Position',[0,0,1,0.5],... 'String','Button 2',... 'Callback',@cb_button2); out.button2_flag = 0; %flag indicating whether button 2 has been pressed yet set(mainfig,'UserData',out);%store "global" data in mainfig's UserData (for use by callbacks) function cb_button1(varargin) out = get(gcbf,'UserData'); %gcbf: handle of calling object's figure while ~out.button2_flag disp('Aaaahhh, infinite loop! Quick press Button 2!'); out = get(gcbf,'UserData'); %reload "global" data pause(0.1); %need this so this callback may be interrupted by cb_button2 end disp('Thanks! I thought that would never end!'); function cb_button2(varargin) out = get(gcbf,'UserData'); %gcbf: handle of calling object's figure out.button2_flag = 1; set(gcbf,'UserData',out); %save changes to "global" data
相关问题
- 1. MATLAB GUI中的多个回调函数
- 2. Matlab GUI,在回调函数之间共享数据
- 3. 如何在Matlab GUI中传递call_backs之间的值
- 4. Matlab的添加两个传递函数
- 5. 在两个函数之间传递数组值
- 6. 使用回调在两个片段之间传递数据
- 7. 传递两个html之间的值
- 8. 在MATLAB GUI中使用句柄在函数之间传递变量
- 9. 帮助在Ajax回调中的函数之间传递变量
- 10. 在Matlab中的GUI之间传递变量
- 11. 在两个函数之间传递对象Around函数 - AOP
- 12. MATLAB GUI中的回路中的回调函数
- 13. matlab GUI回调
- 14. 在JavaScript函数之间传递Json值
- 15. 每个函数之间传递参数
- 16. 从MATLAB GUI传递数据到另一个函数
- 17. 传递两个值的函数,而不调用另一个函数两次
- 18. 将值传递给fadeOut回调函数
- 19. 将值传递给回调函数
- 20. 在MATLAB函数之间传递数据的有效方式
- 21. 在两个TableView之间传递数据
- 22. 在两个UIViewControllers之间传递数据
- 23. MATLAB的GUI回调没有设置另一个回调的值?
- 24. 或两个函数之间的调用
- 25. Node.JS module.exports用于在两个函数之间传递参数?
- 26. PL/SQL:从两个函数之间传递的游标获取
- 27. 将数组传递给gui在matlab中
- 28. 在MATLAB中的两个函数之间共享一个变量?
- 29. 两个值之间的Ocillate函数javascript
- 30. 从GUI传递值到m文件MATLAB
+1的消息显示:-)好了,并回答太 –
而不是暂停(),你可以设置按钮的回调是interuptable。它只是uicontrol的另一个属性,所以您可以在创建时设置它。 –