MATLAB编写GUI小结——程序停止中断button按钮实现
2019-06-21 18:42
2943 查看
笔者最近参加了一个小比赛,需要用MATLAB 写个软件,这里总结一下实现中止按钮时的一些心得体会。
实现方法是找的网上大牛提供的经验并结合自己的改进,这里就不一一列出链接,如果侵权,请联系笔者。
直接给出效果图:
当按下左侧的播放按钮,程序循环进行,并且左侧图标变为如下所示:
在程序循环进行时,点击右侧中止按钮,程序中断运行,且图标变回之前的播放按钮。
至于这里的button按钮为什么能实现这样的效果,有兴趣的同学可以参考笔者的另一篇博客:
这里直接给出左侧button按钮的 Callback 代码:
[code]global flagPlay % 更改图标 position = get(handles.playPauseButton,'Position'); I = imread('.\icon\pause-circle-fill.bmp'); %读取图片 I = imresize(I, [position(4)*2.86*5, position(3)*5]); set(handles.playPauseButton,'CData',I); %将按钮的背景图片设置成A,美化按钮 guidata(hObject, handles); % 循环输入 for jj = 1:100 pause(2.5 + rand(1) - 0.5); % 延时 jj % 检测暂停 if (flagPlay == 0) break; end drawnow() end % 更改图标 position = get(handles.playPauseButton,'Position'); I = imread('.\icon\play-circle-fill.bmp'); %读取图片 I = imresize(I, [position(4)*2.86*5, position(3)*5]); set(handles.playPauseButton,'CData',I); %将按钮的背景图片设置成A,美化按钮 guidata(hObject, handles); flagPlay = 1;
直接给出右侧中止button按钮的 Callback 代码:
[code]global flagPlay flagPlay = 0;
可以看出,两者通过全局变量 flagPlay 进行中止功能的实现。
当然在最开始,flagPlay = 1,即GUI开头的OpeningFcn()函数下,已经声明全局变量 flagPlay = 1。
当点击左侧按钮,开始播放时,先将图标更改为播放中图标,再执行循环功能部分;
关键在于循环中的如下代码:
[code]% 检测暂停 if (flagPlay == 0) break; end drawnow()
这里的 drawnow() 使得该按钮下的函数能感知其他按钮对全局变量的更改,从而得以实现中止功能。
在得知中止按钮别按下后,先将图标更改为播放前图标,并令全局变量 flagPlay = 1。
相关文章推荐
- matlab的gui图像处理操作界面,实现重置和退出按钮功能
- android listVIew实现button按钮监听程序
- java线程控制,当stop按钮就停止,当start按钮就开始运行,当按stop时程序又停止的实现方法
- matlab GUI界面实现单选按钮(radiobutton)
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 1,图像、按钮和坐标轴
- matlab如何实现检测参数异常后停止整个程序的机制
- MATLAB编写的读取.mat文件数据并画曲线图的gui程序
- 1, 编写程序,当用户在文本框中输入内容之后,单机不同的按钮,能够把文半框中的内容粘贴到文本区中。“重置”按钮实现将文本框和文本区中的内容清空。界面上的文本区只能显示内容,不能让用户输入文本。运行结果
- 编写Applet程序实现一个计算器,包括10个数字(0~9)按钮和4个运算符(加、减、乘、除)按钮,以及等号和清空两个辅助按钮,还有一个显示输入输出的文本框。试用GridLayout实现之
- 学习u3d笔记(一) OnGui实现动态创建cube组件 并按钮控制cube旋转 停止 销毁
- matlab GUI界面实现单选按钮(radiobutton)
- 微信小程序-授权登录的实现(button按钮)
- 用java编写程序实现删除文件夹的功能
- asp.net中TextBox里面实现回车触发按钮button的解决方案
- 编写一个计算器程序,要求用函数指针来实现两个浮点值的加减乘除
- 王爽 汇编 实验12 编写0号中断的处理程序
- Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
- 看图学习用D语言编写包含资源的win32 GUI程序
- 一个简单求和函数的matlab实现(带程序耗时功能)
- C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果