首页 第七章Matlab的图形用户界面GUI

第七章Matlab的图形用户界面GUI

举报
开通vip

第七章Matlab的图形用户界面GUInull第七章 Matlab的图形用户界面GUI第七章 Matlab的图形用户界面GUI GUI设计工具简介 GUI向导设计 GUI程序设计 第一节 GUI设计工具简介第一节 GUI设计工具简介图7-1 进入GUI的初始界面一、启动GUInull图7-2 空白界面编辑器外观图null二、用户界面控件对象按钮: 开关按钮: 单选按钮: 动态文本框: 弹出式菜单: null图文框静态文本框列表框复选框滑动条按钮组null图7-3 带有控件的图形界面编辑...

第七章Matlab的图形用户界面GUI
null第七章 Matlab的图形用户界面GUI第七章 Matlab的图形用户界面GUI GUI设计工具简介 GUI向导设计 GUI程序设计 第一节 GUI设计工具简介第一节 GUI设计工具简介图7-1 进入GUI的初始界面一、启动GUInull图7-2 空白界面编辑器外观图null二、用户界面控件对象按钮: 开关按钮: 单选按钮: 动态文本框: 弹出式菜单: null图文框静态文本框列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 框复选框滑动条按钮组null图7-3 带有控件的图形界面编辑器外观图null图7-4 排列工具栏外观图三、几何位置排列工具null四、用属性编辑器设置控件属性图7-5 属性编辑器外观图null五、菜单编辑器 图7-6 菜单编辑器界面图null1.创建菜单栏菜单 图7-7 下拉式菜单创建图null2.创建上下文菜单 图7-8 上下文菜单创建图null六、对象浏览器 图7-9 对象浏览器第二节 GUI向导设计第二节 GUI向导设计 【例7-1】 设计一个带有三个按钮和一个坐标轴的图形用户界面,当用鼠标点击三个按钮时,分别在坐标轴内画sphere,peaks和membrane三个图形。 创建控件 带有1个坐标轴和3个按钮的界面如图7-10所示。null图7-10 GUI界面设计编辑器外观图null 设置按钮属性 图7-11 按钮属性编辑器外观图null图7-12 修改按钮1“String”属性值截图图7-13 修改按钮的“string”属性值后的图形界面编辑器外观null编写回调程序 属性设置完毕后,点击菜单栏上的保存按钮会弹出“save as”对话框,如图7-14所示,文件命名为myGUI。图 7-14 保存图形界面的对话框图null同时,Matlab会自动创建一个同名的M文件,并且自动打开,如图7-15所示。图7-15 自动生成的M文件null图7-16 按钮1的回调子函数定位图null按钮1“sphere”的回调程序为: sphere; axis tight; 按钮2“peaks”的回调程序为: peaks; axis tight; 按钮3“membrane”的回调程序为: membrane; axis tight;null图7-17 M文件编辑器中的三个按钮的回调子函数null (a) (b) (c) (d) 图7-18 运行结果 (a) 被激活后的界面; (b) sphere图; (c) peaks图; (d) membrane图 第三节 GUI程序设计第三节 GUI程序设计1. 用户界面菜单对象的建立 h=uimenu(’ PropertyName1’,value1, ’ propertyName2’,value2,…) 【例7-2】 建立一个包含用户界面菜单项的图形界面,并可执行菜单项的相应功能,分别绘制membrane、peaks和sinc函数图形。 Matlab程序如下: null% 首先建立一个图形窗口 h0=figure('menubar','none','toolbar','none','name','myfirstGUI'); % 建立【Draw】菜单和其下的【Membrane】【Peaks】 和【Sinc】子菜单项 h1=uimenu(h0,'label','Draw');h11=uimenu(h1,'label','Membrane','callback','membrane');h12=uimenu(h1,'label','Peaks','callback','peaks');h13=uimenu(h1,'label','Sinc','callback',... ['[x,y]=meshgrid(-5:0.5:5);','r=sqrt(x.^2+y.^2)+eps;',... 'z=sin(r)./r;','surf(z);']); 该段代码运行后,生成如图7-19所示的带菜单界面图。 null图7-19 生成“membrane”的图形界面 null% 建立第二个菜单【Colormap】及其下的【Cool】【Hot】【Default】子菜单项 h2=uimenu(h0,'label','ColorMap'); h22(1)=uimenu(h2,'label','Hot','callback',... ['set(h22,''checked'',''off'');',... 'set(h22(1),''checked'',''on'');','colormap(hot);']); h22(2)=uimenu(h2,'label','Cool',... 'callback',... ['set(h22,''checked'',''off'');','set(h22(2),' 'checked' ',' 'on' '); ', ... 'colormap(cool); ']); h22(3)=uimenu(h2,'label','Spring',… 'callback',['set(h22,' 'checked' ', ''off' '); ',… 'set(h22(3),''checked'',''on'');','colormap(spring);']); 该段代码运行后,生成如图7-20所示的界面图。 null图7-20 生成“hot”效果的图形界面 null% 建立控制坐标轴的显示菜单【Axis】 h3=uimenu(h0,'label','Axis'); h31=uimenu(h3,'label','Axis on','callback','axis on'); h32=uimenu(h3,'label','Axis off','callback','axis off'); 该段代码运行后,生成如图7-21所示的界面图。 图7-21 生成带坐标轴的图形界面 null% 建立关闭图形用户界面按钮【close】hbutton=uicontrol('position',[80 30 60 30],'string','close','fontsize',8,'fontweight','bold','callback','close'); 说明:本PPT中, M文件的代码在换行时有的保留了“...”, 有的没有,但在MATLAB环境下,若一行太长,换行 前一定要加3个点“...” 再回车。 null2. 用户界面上下文菜单的建立 生成上下文菜单步骤如下: ① 利用函数uicontextmenu创建上下文菜单对象; ② 利用函数uimenu为该上下文菜单对象制作具 体的 菜单项; ③ 利用函数set将该上下文菜单对象和某些图形 对象联系在一起。 null【例7-3】 在一个图形窗口内绘制抛物线和余弦曲线,并创建一 个与之相联系的上下文菜单,用于控制线条的颜色、线宽、线型 及标记点风格。 Matlab程序如下: % 画曲线y1,并设置其句柄 t=-1:0.1:1;subplot(2,1,1);y1=t.^2;h_line1=plot(t,y1) % 建立上下文菜单 uimenu(h,'label','red','callback','set(h_line1,' 'color' ',' 'r' ') '); uimenu(h,'label','green','callback','set(h_line1,' 'color' ',' 'g' ') '); uimenu(h,'label','yellow','callback','set(h_line1,' 'color' ',' 'y' ') '); uimenu(h,'label','linewidth1.5','callback',…'set(h_line1,' 'linewidth' ', 1.5) '); uimenu(h,'label',‘linestyle*','callback',…'set(h_line1,' ' linestyle ' ' , ' '*' ') '); uimenu(h,'label','linestyle:','callback',…'set(h_line1,' ' linestyle ' ' , ' ' : ' ') '); uimenu(h,'label','marker','callback','set(h_line1, ' ' marker ' ' , ' ' s ' ') '); set(h_line1,'uicontextmenu',h) % 使上下文菜单与正弦曲线h_line1相联系 null title('抛物线和余弦曲线','fontweight','bold','fontsize',14) set(gca,‘xtick’,[-1:0.5:1]) % 设置坐标轴的标度范围 % 设置坐标轴的标度值 set(gca,‘xticklabel’,{‘-1’,‘0.5’,‘0’,‘0.5’,‘1’}) % 画曲线y2, 并设置其句柄 subplot(2,1,2)t=0:.1:2*pi;y2=cos(t);h_line2=plot(t,y2) h=uicontextmenu; uimenu(h,'label','red','callback','set(h_line2,''color'',''r'')'); uimenu(h,'label','crimson','callback','set(h_line2,''color'',''m'')'); uimenu(h,'label','black','callback','set(h_line2,''color'',''k'')');null uimenu(h,'label','linewidth1.5','callback',… 'set(h_line2,''linewidth'',1.5)'); uimenu(h,'label','linestyle*','callback',… 'set(h_line2,''linestyle'',''*'')'); uimenu(h,'label','linestyle:','callback',… 'set(h_line2,''linestyle'',''s'')'); uimenu(h,'label','marker','callback',… 'set(h_line2,''marker'',''s'')'); nullset(h_line2,'uicontextmenu',h) set(gca,'xtick',[0:pi/2:2*pi]) set(gca,'xticklabel',{'0','pi/2','pi','3pi/2', '2pi'}) xlabel('time 0-2\pi','fontsize',10) % 建立关闭图形用户界面按钮【close】hbutton=uicontrol('position',[80 10 70 35],'fontsize',8, … 'fontweight','bold','string','close','callback','close'); null (a) (b) 图7-22 带有上下文菜单的图形界面 (a) 将抛物线的线型设为“*”时的图形界面;(b) 将余弦曲线的线宽设为“1.5”时的图形界面null二、用户界面控件对象的建立 创建控件对象的格式为: H=uicontrol ('PropertyName1',value1, 'PropertyName2',value2,…) 【例7-4】 建立一个包含控件的图形用户界面,点击控件 时执行该控件的相应功能,要求绘制membrane,peaks 和sphere函数图形,并有光照控制效果。null【例7-4】 建立一个包含控件的图形用户界面,点击控件时执 行该控件的相应功能,要求绘制membrane,peaks和sphere 函数图形,并有光照控制效果。 % 建立图形窗口和坐标轴,去除窗口本身的菜单条和工具条, 并命名为 mysecondGUI h0=figure('menubar','none','toolbar','none', ... 'position', [198 56 408 468],'name','mysecondGUI'); h1=axes('parent',h0,'position',[0.15 0.45 0.7 0.5], ... 'visible','off'); % 建立静态文本框和动态文本框 htext1=uicontrol('parent',h0,'units','points','position',… [54 110 45 15],'string','input title','style','text'); hedit=uicontrol('parent',h0,'units','points','position',… [100 110 45 16],'callback','title(get(hedit,''string''))','style','edit');null% 创建三个按钮 hbutton1=uicontrol('parent',h0,'units','points','string','Sphere',... 'position',[20 65 50 18],'callback','mesh(sphere);axis tight'); hbutton2=uicontrol('parent',h0,'units','points','string','Membrane','position',[75 65 50 18],'callback', ... 'mesh(membrane);axis tight'); hbutton3=uicontrol(‘parent’,h0,‘units’,‘points’,‘string’,... 'Sinc','position',[135 65 50 18],'callback',... ['[x,y]=meshgrid(-5:0.5:5);',... 'r=sqrt(x.^2+y.^2)+eps;','z=sin(r)./r;','mesh(x,y,z)']); % 创建静态文本框和滚动条,鼠标拖动滚动条控制图形的颜色变化 htext2=uicontrol('parent',h0,'units','points','position',… [20 30 45 15],'string','brightness','style', ... 'text');hslider=uicontrol('parent',h0,'units','points','position',… [65 30 120 15],'min',-1,'max',1,'style','slider','callback',... 'brighten(get(hslider,''value''))'); % 建立静态文本框和五个单选按钮 nullhtext3=uicontrol('parent',h0,'units','points','position',… [200 130 80 15],'string','select color:','style','text'); hradio(1)=uicontrol('parent',h0,'units','points','position',… [200 115 80 15],'string','default','style',… 'radiobutton','value',1,'callback',... ['set(hradio,''value'',0);','set(hradio(1),''value'',1);',... 'colormap(''default'')']); hradio(2)=uicontrol('parent',h0,'units','points','position',… [200 100 80 15],'string','spring','style',… 'radiobutton','value',1,'callback',... ['set(hradio,''value'',0);','set(hradio(2),''value'',1);',... 'colormap(spring)']); hradio(3)=uicontrol('parent',h0,'units','points','position',… [200 85 80 15],'string','summer','style',… 'radiobutton','value',1,'callback',... ['set(hradio,''value'',0);','set(hradio(3),''value'',1);',... 'colormap(summer)']);nullhradio(4)=uicontrol('parent',h0,'units','points','position',… [200 70 80 15],'string','autumn','style',… 'radiobutton','value',1,'callback',... ['set(hradio,''value'',0);','set(hradio(4),''value'',1);',... 'colormap(autumn)']);hradio(5)=uicontrol('parent',h0,'units','points','position',… [200 55 80 15],'string','winter','style',… 'radiobutton','value',1,'callback',... ['set(hradio,''value'',0);','set(hradio(5),''value'',1);',... 'colormap(winter)']); % 建立关闭图形用户界面按钮【close】hbutton4=uicontrol('parent',h0,'units','points', … 'string','Close',... 'position',[200 30 50 18],'callback','close'); null保存以上程序,命名为mysecondGUI,运行此文件,在静态文本框中输入“sinc”,点击“Sinc”按钮,则产生如图7-23所示的图形界面。图7-23 生成Sinc图形的GUI界面
本文档为【第七章Matlab的图形用户界面GUI】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_510805
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:其他高等教育
上传时间:2012-04-21
浏览量:176