资源描述:
《matlab基础与编程入门课件 第九讲 用户界面设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MATLAB图形用户界面设计MATLAB图形界面中各对象关系根对象root图形窗口对象figure右键菜单对象uicontextmenu菜单对象uimenu控件对象uicontrol坐标轴对象axes线对象line文字对象text表面图对象surface图像对象image光源对象light两种界面创建方式:交互式工具创建命令创建界面1、窗口对象及其属性设定1.1窗口对象的建立hwin=figure(属性1,属性值1,属性2,属性值2,…)hwin为图形窗口的句柄,matlab环境允许打开多个窗口,每个窗口都对应自己的
2、句柄,通过该句柄可以进一步对窗口的属性等进行操作。hwin=gcf获得当前窗口的句柄。1.2图形窗口的属性常用属性color属性由红绿蓝三原色组成,取值范围为0到1。menubar属性设置菜单条的形式。MenuBar属性的取值可以是figure(缺省值)或none。用来控制图形窗口是否应该具有菜单条。如果它的属性值为none,则表示该图形窗口没有菜单条。这时用户可以根据后面将介绍的uimenu()函数来加入自己的菜单条,如果属性值为figure,则该窗口将保持图形窗口默认的菜单条,这时也可以采用uimenu()函数在
3、原默认的图形窗口菜单后面添加新的菜单项。name属性设置图形窗口的标题栏中标题内容,其属性值为一字符串。numbertitle属性是否显示图形窗口标题栏中的图形标号。Name属性的取值可以是任何字符串,它的缺省值为空。这个字符串作为图形窗口的标题。一般情况下,其标题形式为:“Figure1:字符串。units属性设定图形单位。如:pixels(象素点)、inches(英寸)、centimeters(厘米)、normalized(归一值)等position属性设定窗口的位置和大小,为1×4向量,前两个值为窗口左下角横纵
4、坐标值,后两个元素值为窗口的宽度和高度,其单位由units属性设定。resize属性确定是否可以改变图形窗口的大小。toolbar属性是否显示工具条。visible属性决定窗口是否为可见。Pointer属性设置鼠标的显示形式。回调函数(callbackfunction)CloseRequestFcn-关闭窗口时响应函数KeyPressFcn-键盘按下时响应函数windowButtonDownFcn-鼠标按下时响应函数WindowButtonMotionFcn-鼠标移动时响应函数CreateFcn和DeleteFcn-
5、建立和删除对象时响应函数CallBack-对象被选中时响应函数gwin=figure('visible','off');pauseset(gwin,'color',[1,0,0],'position',[100,200,300,300],...'name','Myprogram','numbertitle','off','menubar','none');set(gwin,'visible','on')set(gwin,'windowbuttondownfcn','helpdlg(''mousebuttondown!
6、'')')set(gwin,'keypressfcn','helpdlg(''keyboardpressed!'')')一旦该对象指定的事件发生,将自动调用某指定的函数,它可以是matlab文件,也可以是一组matlab程序。例1建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为450像素点和260像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将在该图形窗口绘制出正弦曲线,点击鼠标时绘制余弦曲线。hf=figure('Color',[0,1,0],'Pos
7、ition',[1,1,450,260],...'Name','我的图形窗口','NumberTitle','on','MenuBar','none',...'KeyPressFcn','plot(sin(0:0.01:2*pi))','WindowButtonDownFcn','plot(cos(0:0.1:2*pi),''r*'')');例2:修改图形位置space=5;top_space=80;scn_size=get(0,'ScreenSize');pos1=[space,2/3*scn_size(4)+sp
8、ace,...scn_size(3)/2-2*space,scn_size(4)/3-(top_space+space)];pos2=[pos1(1)+scn_size(3)/2,pos1(2),...pos1(3),pos1(4)];h1=figure(1);peaks;h2=figure(2);membrane;set(h1,‘Positi