介绍
上一篇对GUI的设计有了简单的了解,也对控件有了了解,但是控件的搭建只是类似于绘制了一个架构,但是具体的架构内容还没有进行设计,所以还需要编写M文件来实现控件之间的交互。
其他过于理论的东西就不多述了,直接举个简单的实例,对整体的GUI设计流程便能够有个清晰的认识了。
实例1
首先按上篇的介绍,新建个GUI的设计,然后在界面中添加一个坐标轴和两个按钮,并使用菜单栏中的“对齐对象”对齐控件的边缘,摆好后的效果:
对齐对象的工具使用方法很简单,先选中需要对齐的控件,然后按图例中的样子,实现控件的摆放,分布选项需要勾选设置间距的框,然后设定具体的分布位置等,还不太懂的话,自行操作下,就知道意思了。
接着开始设计内容,更改按钮的“tag”和“string”属性
第二个按钮分别设置为“rotate”和“旋转”,都设置好后的样子
点保存,对应的EX1.m文件会自动创建控件的函数,即回调函数
开始准备代码的编辑,找到XX_OpeningFcn的函数,在最后一行加上
代码语言:javascript复制set(handles.rotate,'Enable','off');
实现功能:在GUI刚运行时,关闭旋转按钮的功能,使用句柄的形式操作,rotate就是旋转按钮的tag值,也是旋转按钮的唯一标识。
然后编写绘图函数下的代码,绘制一只“蝴蝶”……
代码语言:javascript复制axes(handles.axes1);%链接到绘图坐标轴上
theta=0:0.01:2*pi;
rho=sin(2*theta).*cos(1.5*theta);
polar(theta,rho,'.r');
AZ = 90;
EL = 90;
view(AZ,EL);
set(handles.rotate,'Enable','on');
其中,【set(handles.rotate,'Enable','on');】是为了使能旋转按钮
绘图函数设计好后,接着用旋转按钮设计一个旋转的功能函数
代码语言:javascript复制axes(handles.axes1);%链接到同一个绘图坐标轴上
EL = 90;
for AZ=90:1:450
view(AZ,EL);
drawnow;
end
在两个回调函数中,链接到了同一个axes1坐标轴,从而实现一个绘图,一个对当前图形旋转的功能。
都设计好之后,点保存,然后便可以运行了,可以在运行时修改代码进行调试;
最后再加个菜单来表明下信息……
都设计好后,就可以运行程序看效果了!!!
1、Run
2、绘图
3、旋转
这是个动态旋转的功能,为了省事,就随便截了个运行时的图。
4、Help
结束
本篇的简单实例就到此结束了,后面会再搞一两个复杂些的实例,进行进阶,感觉会更有意思些~
本篇的实例打包到了盘里面,需要的朋友可以在下方自行获取。。。