Matlab的GUI界面学习手记
最近在用Matlab的guide来写GUI界面,就记录一些我对GUI界面的理解。
首先是函数中都有的那些参数hObject,eventdata和handles,其中eventdata我用的2017b的Matlab的官方注释是将在未来版本中定义。
这个就先不管。
先看hObject和handles。
他们的作用很相似,hObject和handles的官方解释是句柄,一直没有很搞懂,现在终于明白了一些。
我的理解是GUI界面中的元素就是句柄,或者更加通俗一些的解释,把handle当成C++或是Java中的类类型,而handles就是类的名称,要调用类中的元素就要用到handles。
下面列出了一些常用的元素,当然可以自己随意改变名称:
比如有pushbutton按钮,slider滑动条,radiobutton单选框,checkbox勾选框,edit输入框,popupmenu弹出窗口。
举个实例,
比如这里我要实现的功能是改变勾选checkbox以后显示在text1中显示文字’hello’,就可以这样写
function checkbox1_Callback(hObject, eventdata, handles) set(handles.text1,'string','Hello','FontSize',18)
而hObject和handles的区别就在于hObject是自己,有点像this指针。
比如上一例子中hObject = handles.checkbox1。
也举个例子,获取当前下拉菜单的索引值,和具体的值:
function popupmenu1_Callback(hObject, eventdata, handles) sel = get(hObject,'string');%获取下拉菜单当前选项的索引值 choose = get(hObject,'value');%获得索引值 sel{choose}%存储的时候是cell格式,这样才能取得正确的值
总结:
1.要使用handles一般是改变其他元素,交互式的,比如点某一个按键,显示图片。
2.而hObject则是自身元素。
而每一个元素又有很多的属性,我的理解是C++中的结构体或是另一个类,这个类中也有很多属性,一般是公有的属性,
比如我目前用到的有’value’索引值,'visible’可视化,'BackgroundColor’背景颜色,'string’值。
还有其他一些小内容:gcf = figure(‘当前图像’)
1.切换图像:原理是隐藏当前图像,打开要打开的图像的句柄
set(gcf,'visible','off'); h = figure(新图像); set(h,'visible','on');
2.运行命令:
要运行的程序为fun.m
run('fun')
3.要同一个界面上画多幅图像:
axes(handles.axes1) 画图命令(不加figure或是subplot命令) axes(handles.axes2) 画图命令
4.改变下拉菜单中的内容:
set(handles.popupmenu1,'string',{'A','B'})
5.显示Latex公式,目前我只知道text命令支持:
hAxes = axes('units','normalized','position',[0,0,1,1],'visible','off');%作用是划分figure区域为[0 0 1 1] text(0.17,0.85,['$','\omega_{R}(n)=R_{N}(n)','$'],'interpreter','latex','fontsize',18);
6.实时显示时间
T=timer('tag','timer1','BusyMode','queue','ExecutionMode','fixedrate','period',1,'timerfcn',{@t_update,handles}); start(T); function t_update(obj,event,handles)%显示时间要定时刷新 xingqi={'日','一','二','三','四','五','六'}; %星期字符串 set(handles.text2, 'String',[datestr(clock, 31) ' 星期' xingqi{weekday(now)}],'FontSize',15);
推荐一本学习Matlab的UI设计的好书,MATLAB GUI设计学习手记 这里可以下载源码源码下载可以学习到很多。
- Matlab学习笔记 (一)GUI用户图形界面编程
- matlab之GUI界面设计(2)
- 在matlab中GUI环境下通过摄像头读入视频并处理 手记(未完)
- matlab GUI界面编程总结
- Matlab GUI图像学习图像处理进阶
- Matlab GUI设计之坐标转换(附Matlab GUI设计学习手册完整版pdf)
- matlab之GUI界面设计(1)
- 【Unity 3D】学习笔记十二:GUILayout(界面布局)
- Matlab GUI界面,按钮
- 基于MATLAB的教室人数统计系统(带可执行源码和GUI界面)
- Matlab PCA+SVM人脸识别(二)——GUI界面设计
- Matlab GUI入门-直方分布图界面制作
- MATLAB GUI学习笔记(二)
- matlab中GUI界面点击图片获取坐标问题的解决方法
- Python学习 Python3.5+PyQt5环境--------02、代码与界面GUI分离
- MATLAB教学_07图形界面_GUI_程式设计
- Matlab GUI界面
- 初次学习matlab设计图形用户界面(GUI)
- MATLAB GUI界面总结
- Matlab GUI入门获取\设置界面控件的值