Matlab GUI图形界面设计
第6章 MATLAB高级图形设计 6.1 句柄图形对象 6.2 图形用户界面(GUI) 6.3 对话框 6.4 图像和声音 6.5 视频与动画设计 6.1 句柄图形对象 6.1.1 句柄图形对象体系 句柄(Handle)是每个图形对象唯一的标识,不同对象的句柄不能重复,通过句柄可以对图形对象的属性进行操作。 6.1.2 句柄图形对象的操作 1. 创建句柄图形对象 h_obj=funname('PropertyName',PropertyValue,……) h_obj是图形对象的句柄; funname是函数名,每个创建的图形对象函数名与对象名相同; 'PropertyName'是属性名,属性名是字符串; PropertyValue是属性值。 例: >> h_f=figure('Position',[200 300 500 400])%创建图形窗 >> h_a1=axes('position',[0.1,0.05,.85,.85]) %创建坐标轴 例6-1: Ex6_1.m 2. 访问句柄图形对象 (1)获取当前图形对象的句柄 gcf %获取当前图形窗口的句柄 gca %获取当前窗口当前坐标轴的句柄 gco %获取当前窗口当前对象的句柄 说明:返回值都是句柄,gco的当前对象句柄是指被鼠标最近点击过的对象。 (2)查找对象句柄 h=findobj(h_obj,'PropertyName', PropertyValue)%查找符合指定属性值的对象句柄 3. 句柄图形对象属性的获取和设置 a=get(h_obj,'PropertyName') %获取图形对象的属性值 a=set(h_obj,'PropertyName',PropertyValue,...)%设置图形对象的属性值 例6-2 使用句柄图形对象绘制正弦曲线(ex6_2.m)。 >> x=0:0.1:10; >> y=sin(x); %创建无标题窗口 >> h_f=figure('Position',[200 300 300 300],'menubar','none'); >> h_a1=axes('position',[0.1,0.1,.8,.8]); >> h_t=title(h_a1,'正弦曲线'); %创建标题 >> h_l=line(x,y);%建立曲线对象 >> set(gca,‘xtick’,[0 pi/2 pi 3*pi/2 2*pi 5*pi/2 3*pi]) %设置x坐标轴刻度 %设置坐标轴刻度标注 >> set(gca,'xticklabel',{'0','pi/2','pi','3*pi/2','2pi','5*pi/2','3pi'}) >> set(gca,'xgrid','on','ygrid','on'); %设置坐标轴属性 >> set(h_l,'linewidth',2) %设置线属性 >> set(get(h_t,'parent'),'color','y') %设置标题的父对象属性 %创建矩形框 >> h_ann0=annotation(gcf,'rectangle',[0.1 0.5 .8 0.4],... 'FaceAlpha',.7,'FaceColor','red'); 补充where_mathsworks.m 4. 句柄图形对象的复制和删除 (1)句柄图形对象的复制 new_handle = copyobj(h_obj,p) %复制图形对象h_obj (2)删除句柄图形对象 delete(h_obj)%删除图形对象 (3)删除所有的句柄对象 clf(h_figure) %删除h_figure窗口中的所有可见对象 cla(h_axes)%删除h_axes坐标轴中的所有可见对象 6.2 图形用户界面(GUI) MATLAB的图形用户界面提供了包含按钮、文本框、标签等一系列交互控件,用户可以通过鼠标和键盘进行交互操作。 6.2.1 图形用户界面概述 在MATLAB主界面选择菜单“File”→“New”→“GUI”,或直接在命令窗口输入“Guide”命令都可以打开GUIDE快速开始界面 。 6.2.2 设计一个简单的GUI界面 1. 设计一个GUI界面的步骤 (1)界面布局设计 界面布局设计包括以下几个步骤: 通过拖拽控件面板中的控件到界面设计区中; 然后使用对象对齐工具(Align Objects)进行控件的布局调整,使用Tab顺序编辑器(Tab Order Editor)对各控件的Tab顺序进行较好地设置; 如果界面需要菜单,则使用菜单编辑器(Menu Editor)进行菜单的