欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    MATLAB-GUI图形用户界面设计(1).ppt

    • 资源ID:24770136       资源大小:587KB        全文页数:39页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MATLAB-GUI图形用户界面设计(1).ppt

    7/5/202231) 分析界面所要实现的主要功能,明确设计任务。分析界面所要实现的主要功能,明确设计任务。2) 绘界面草图,注意从使用者的角度来考虑界面布局。绘界面草图,注意从使用者的角度来考虑界面布局。3) 利用利用GUI设计工具制作静态界面。设计工具制作静态界面。4) 编写动态功能程序。编写动态功能程序。注意:注意:1) 先完成大致界面布局,再编写功能程序。先完成大致界面布局,再编写功能程序。2) 界面风格要一致,且符合使用习惯。例如,一般习惯图形界面风格要一致,且符合使用习惯。例如,一般习惯图形区在上面或左面,控制区在下面或右面等等。区在上面或左面,控制区在下面或右面等等。7/5/20224例如,以本次试验的内容例如,以本次试验的内容“计算器计算器”为例。为例。1) 功能分析:完成数字的四则运算,以及一部分常用的科学功能分析:完成数字的四则运算,以及一部分常用的科学计算:计算:sin, cos, log等等。等等。2) 界面草图:可以有多种风格的界面。给出几种设计草图。界面草图:可以有多种风格的界面。给出几种设计草图。草图一草图一草图二草图二草图三草图三3) 利用利用GUI设计工具实现草图的布局,设计工具实现草图的布局,caculator.fig。4) 编写相应的程序完成计算器的各项功能,编写相应的程序完成计算器的各项功能, caculator.m。7/5/20225MATLAB6.5版本的版本的GUI设计工具较前面的版本有很大的设计工具较前面的版本有很大的改善,设计界面变化很大。改善,设计界面变化很大。打开打开GUI设计工作台的命令:设计工作台的命令:guide%打开设计工作台启动界面打开设计工作台启动界面guide file%在工作台中打开文件名为在工作台中打开文件名为file的用户界面的用户界面菜单项菜单项 File:New-GUI %打开设计工作台启动界面打开设计工作台启动界面注意:注意:guide命令中文件名不区分大小写。命令中文件名不区分大小写。打开的打开的GUI启动界面提供新建界面启动界面提供新建界面( Create New GUI )或或打开已有界面文件打开已有界面文件( Open Existing GUI )的属性页。新建界面的属性页。新建界面可以选择空白界面、包含有控件的模板界面、包含有轴对象可以选择空白界面、包含有控件的模板界面、包含有轴对象和菜单的模板界面、标准询问窗口等选项。和菜单的模板界面、标准询问窗口等选项。选择任意一项都会打开选择任意一项都会打开GUI设计工作台,对界面静态组设计工作台,对界面静态组成部分进行的具体的修改都在工作台实现。成部分进行的具体的修改都在工作台实现。7/5/20226GUI设计工具的启动界面设计工具的启动界面新建界面的选项预览窗口是否在新建时保存文件最近打开的界面文件的列表打开文件浏览器7/5/20227GUI设计工作台设计工作台设计工作区主要由4个功能区,六个实用工具组成控件选择区菜单条工具条对齐工具文件编辑菜单编辑对象属性对象列表运行界面工作区缩放句柄7/5/20228对象选择按钮对象选择按钮,用来选取工作区上分布的控件。,用来选取工作区上分布的控件。单功能按键单功能按键,按下操作代表一定的功能实现。,按下操作代表一定的功能实现。双位按键双位按键,代表,代表“开开”“”“关关”两种状态。两种状态。互斥选择按钮互斥选择按钮,多个选项互斥选择时使用。,多个选项互斥选择时使用。互容选择按钮互容选择按钮,同时选中多个选项时使用。,同时选中多个选项时使用。编辑文本框编辑文本框,可以自由输入字符,编辑字符串,可以自由输入字符,编辑字符串静态文本框静态文本框,用于显示注释说明用文字,不可编辑。,用于显示注释说明用文字,不可编辑。滑动块滑动块,利用游标滑动,可以获取不同的值。,利用游标滑动,可以获取不同的值。控件区域框控件区域框,用于对控件区域进行标识。,用于对控件区域进行标识。列表框列表框,提供多个可供选择的选项,可以互容选择。,提供多个可供选择的选项,可以互容选择。弹出框弹出框,带有多个选项,只能选择其中一项。,带有多个选项,只能选择其中一项。轴对象轴对象,用来显示图形。,用来显示图形。用户控件列表:用户控件列表:7/5/20229以以“计算器计算器”界面草图一为例。界面草图一为例。1. 初步布局初步布局,根据草图将控件选择区的相应控件拖拉到设计,根据草图将控件选择区的相应控件拖拉到设计工作区的相应位置。工作区的相应位置。7/5/2022102. 修改控件属性修改控件属性每一个控件都不可能是完全符合界面设计要求的,需要每一个控件都不可能是完全符合界面设计要求的,需要对其属性进行设置,以获得所需的界面显示效果。对其属性进行设置,以获得所需的界面显示效果。 可以通过双击该控可以通过双击该控件,或利用件,或利用GUI设计工设计工具的下拉菜单具的下拉菜单View: Property Inspector打打开控件属性对话框。属开控件属性对话框。属性对话框具有良好的交性对话框具有良好的交互界面,以列表的形式互界面,以列表的形式给出该控件的每一项属给出该控件的每一项属性。性。 例如右图是例如右图是“+”按按钮的属性列表。钮的属性列表。7/5/202211下面对各控件的主要属性进行一下说明。下面对各控件的主要属性进行一下说明。1) 双击设计工作区的空白部分,打开整个图形窗的属性框。双击设计工作区的空白部分,打开整个图形窗的属性框。MunuBar: none%图形窗是否使用标准菜单图形窗是否使用标准菜单Name: caculator %图形窗名称图形窗名称Resize: off%图形窗不能缩放图形窗不能缩放Tag: mainWnd%图形窗的句柄图形窗的句柄 handles.mainWnd2) 静态文本编辑框的属性设置。静态文本编辑框的属性设置。FontSize: 15%字体大小字体大小FontUnits: points%字体大小的度量单位字体大小的度量单位HorizontalAlignment: Center%对齐方式对齐方式String: Expression%待显示的字符待显示的字符Tag: text1%该静态文本框的句柄该静态文本框的句柄handles.text1Units: points%文本框度量单位文本框度量单位 Units或或FontUnits可选择:可选择:inches(英寸英寸),centimeters (厘米厘米), normalized(按比例缩放按比例缩放),points(点阵点阵), pixels (像素像素), characters(字符字符)。如果选择。如果选择normalized,那么当,那么当resize设为设为on时,控件或字体大小随着整个窗口的缩放而改时,控件或字体大小随着整个窗口的缩放而改变。变。 水平对齐方式水平对齐方式 HorizontalAlignment可以是可以是left, center, right。 控件句柄控件句柄Tag有默认值,建议修改为带有具体含义的字有默认值,建议修改为带有具体含义的字符串,以增加程序可读性和方便回调函数调用。符串,以增加程序可读性和方便回调函数调用。7/5/2022123) 可编辑文本框的属性设置。可编辑文本框的属性设置。String: 0%初始状态下显示数字初始状态下显示数字0Tag: pExp%可编辑文本框的句柄可编辑文本框的句柄其它和静态文本框相同其它和静态文本框相同4) 单功能按钮属性设置。以按钮单功能按钮属性设置。以按钮“1” 为例为例String: 1Tag: p1其它和静态文本框相同。其它和静态文本框相同。3. 精细调整精细调整利用对齐工具,排列控件的位置,使控件的大小、位置更利用对齐工具,排列控件的位置,使控件的大小、位置更加协调。加协调。7/5/2022134. 界面激活界面激活保存静态界面后,利用工具栏上的运行按钮激活该界面。保存静态界面后,利用工具栏上的运行按钮激活该界面。激活后可以看到两个同名文件:激活后可以看到两个同名文件:caculator.m和和caculator.fig。 caculator.m文件在文件在M文本编辑器中打开,文本编辑器中打开, caculator.fig文文件显示为操作界面,但是无法实现任何功能,需要编写回调件显示为操作界面,但是无法实现任何功能,需要编写回调函数。函数。7/5/202214在在M文本编辑器中打开文本编辑器中打开caculator.m文件,可以看到自动文件,可以看到自动生成的回调函数,该函数的命名利用对象句柄进行区分,没生成的回调函数,该函数的命名利用对象句柄进行区分,没有任何执行语句。有任何执行语句。回调函数:回调函数:Tag_Callback(hObject, eventdata, handles),通过加入自己的处理语句,可以实现所需的功能。通过加入自己的处理语句,可以实现所需的功能。其中:其中:hObject是该控件的句柄;是该控件的句柄;eventdata是备用参数,目前没有定义;是备用参数,目前没有定义;handles是用户数据,本身是一个结构数组,存放了当前窗口是用户数据,本身是一个结构数组,存放了当前窗口的所有对象的句柄,包括图形窗本身、所有控件和菜单的句的所有对象的句柄,包括图形窗本身、所有控件和菜单的句柄。并且可以增加一些域用来传递用户数据。柄。并且可以增加一些域用来传递用户数据。利用利用guidata( H, handles )可以更新可以更新 H 的用户数据。的用户数据。7/5/202215先设先设5个参数个参数handles.start=1; %不能一开始输入运算符号不能一开始输入运算符号handles.term=0; %运算完,进行新的运算运算完,进行新的运算handles.repeat=0; %不能重复输入运算符号不能重复输入运算符号handles.point=0; %不能重复输入点不能重复输入点handles.bracket=0; %输入输入sin,cos,log,log10后不能在输后不能在输入数字,只能输入运算符号入数字,只能输入运算符号7/5/202216只用编0的程序来说明,其他从1到9都是一样的程序function pushbutton0_Callback(hObject, eventdata, handles)function pushbutton0_Callback(hObject, eventdata, handles)% hObject handle to pushbutton0 (see GCBO)% hObject handle to pushbutton0 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% handles structure with handles and user data (see GUIDATA)if(handles.start) %if(handles.start) %如果没有数字按入,一开始运算符号无法输入如果没有数字按入,一开始运算符号无法输入 content=;content=; set(handles.edit,string,content); % set(handles.edit,string,content); %把空的内容显示出来把空的内容显示出来 handles.start=0;handles.start=0; guidata(hObject, handles); % guidata(hObject, handles); %更新句柄结构更新句柄结构endendcontent=get(handles.edit,string); %content=get(handles.edit,string); %把前面输入的内容保存在把前面输入的内容保存在contentcontent中中 if(handles.term) %if(handles.term) %计算结束后,就为空,继续下一次输入计算结束后,就为空,继续下一次输入 content=;content=; handles.term=0; handles.term=0; guidata(hObject, handles); guidata(hObject, handles);endendif(handles.bracket) %sin,cos,log,log10if(handles.bracket) %sin,cos,log,log10输入后,不能在接数字,只能接运算输入后,不能在接数字,只能接运算符号符号 guidata(hObject, handles);guidata(hObject, handles);elseelseout=content,0; %out=content,0; %把把0 0与前面的内容相连起来与前面的内容相连起来set(handles.edit,string,out); %set(handles.edit,string,out); %把新内容显示出来把新内容显示出来handles.repeat=0; %handles.repeat=0; %数字输入完可以输入运算符号了数字输入完可以输入运算符号了guidata(hObject, handles);guidata(hObject, handles);endend% - Executes on button press in pushbutton1.% - Executes on button press in pushbutton1.7/5/202217其他从其他从1到到9都是一样的程序都是一样的程序function pushbutton10_Callback(hObject, eventdata, handles)7/5/202218下面的程序是关于点的程序if(handles.point) %不能连续输入点不能连续输入点 guidata(hObject, handles);else handles.repeat=1; %输入点后不能在输入运算符号输入点后不能在输入运算符号 if(handles.start) %如果没有数字按入,一开始运算如果没有数字按入,一开始运算符号无法输入符号无法输入 content=; set(handles.edit,string,content); handles.start=0; guidata(hObject, handles); end7/5/202219content=get(handles.edit,string); if(handles.term) content=; handles.term=0; guidata(hObject, handles); end out=content,.; set(handles.edit,string,out); handles.repeat=1; handles.point=1; guidata(hObject, handles);end7/5/202220下面是关于加法的程序function pushbutton11_Callback(hObject, eventdata, handles)if(handles.start) %如果没有数字按入,一开始如果没有数字按入,一开始运算符号无法输入运算符号无法输入 content=0.; set(handles.edit,string,content); guidata(hObject, handles);else content=get(handles.edit,string); %把前面的内容取出来保把前面的内容取出来保存在存在content中中 handles.term=0; %可以进行运算可以进行运算 7/5/202221 handles.point=0; %可以输入点可以输入点handles.bracket=0; %运算符号后可以输入运算符号后可以输入sin,cos,log ,log10 if(handles.repeat) %前面有运算符号,就不允许在输入运算符号前面有运算符号,就不允许在输入运算符号 guidata(hObject, handles); else out=content,+; set(handles.edit,string,out);handles.repeat=1; %输入加号后就把输入加号后就把handles.repeat置置1 guidata(hObject, handles); endend7/5/202222下面是关于减法的程序if(handles.start) content=; set(handles.edit,string,content); handles.start=0; guidata(hObject, handles);end content=get(handles.edit,string); handles.term=0; handles.bracket=0;7/5/202223要注意reset后可以直接输入“”,因为有负数if(handles.repeat) guidata(hObject, handles); else out=content,-; set(handles.edit,string,out); handles.repeat=1; guidata(hObject, handles); end7/5/202224下面是关于sin的程序if(handles.start) content=0.; set(handles.edit,string,content); guidata(hObject, handles);else content=get(handles.edit,string); 7/5/202225text=strcat(sin(, content,); %把把sin()写显示出写显示出来括号里是前面输入的内容来括号里是前面输入的内容 set(handles.edit,string,text); %把内容显示出把内容显示出来来 handles.point=1; %sin后不能在允许在输入点后不能在允许在输入点 handles.bracket=1; %sin()后不能直接跟数字后不能直接跟数字 guidata(hObject, handles); end7/5/202226下面是关于计算的程序if(handles.start) content=0.; set(handles.edit,string,content); guidata(hObject, handles);else7/5/202227try %把显示的内容进行计算,把结果显示出来,如果出把显示的内容进行计算,把结果显示出来,如果出现计算错误,则不显示现计算错误,则不显示 content=get(handles.edit,string); result=eval(content); %对字符型表达式进行计算对字符型表达式进行计算 set(handles.edit,string,num2str(result); handles.term=1; handles.point=0; guidata(hObject, handles); catch guidata(hObject, handles); endend7/5/202228下面是关于reset的程序content=0.;set(handles.edit,string,content);handles.start=1;handles.term=0;handles.repeat=0;handles.point=0;handles.bracket=0;guidata(hObject, handles);7/5/202229 pushbutton togglebutton radiobutton checkbox edit text slider frame listbox popupmenuPosition四个参数的含义:四个参数的含义:x_begin, y_begin, x_lenth, y_lenth7/5/2022302. 用户菜单制作函数用户菜单制作函数H=uimenu( H_parent, pName,pVariable,)其中,其中,H_parent为菜单父句柄,可以是窗口或上一级菜单为菜单父句柄,可以是窗口或上一级菜单pName和和pVariable成对出现,设置菜单的一个属性。成对出现,设置菜单的一个属性。现场菜单现场菜单( 右键菜单右键菜单 )Hm=uicontextmenu;H=uimenu( Hm, pName, pVariable, )Set( H_parent, uicontextmenu, Hm )其中,其中,H_parent是与这个现场菜单相关联的对象的句柄。是与这个现场菜单相关联的对象的句柄。利用利用 H=uimenu 和和 set(H) 指令可以查看菜单的属性列表。指令可以查看菜单的属性列表。常用的菜单属性:常用的菜单属性: label: 菜单显示的字符,菜单显示的字符,&X形式代表简捷键,形式代表简捷键,Alt+X作用作用 callback: 回调函数回调函数 accelerator: 快捷键,快捷键,Ctrl+X作用作用 separator: on/off 该菜单上方显示分隔线该菜单上方显示分隔线 checked: on/off 该菜单项的检录符该菜单项的检录符 enable: on/off 该菜单是否可选该菜单是否可选 visible: on/off 该菜单是否可见该菜单是否可见7/5/202231例例2-1 用户菜单的制作用户菜单的制作p=peaks(30);colors=summer,hot,copper;H0=figure;set(H0,menubar,none);surf(p);%制作制作color菜单菜单H1=uimenu(H0,label,&Colors);H1_s=uimenu(H1,label,&Summer,callback,i=1;colormap(colorsi););H1_h=uimenu(H1,label,&Hot,callback,i=2;colormap(colorsi););H1_s=uimenu(H1,label,&Copper,callback,i=3;colormap(colorsi););7/5/2022321. 掌握图形用户界面设计工具,实现静态界面的设计。掌握图形用户界面设计工具,实现静态界面的设计。2. 掌握掌握GUI工具生成的工具生成的M文件的结构,以便编写回调函数。文件的结构,以便编写回调函数。3. 利用利用M函数文件实现图形界面的方法。函数文件实现图形界面的方法。uicontrol, uimenu, uicontextmenuuserdata4. 综合综合GUI工具和工具和M函数文件完成更加灵活的界面设计。函数文件完成更加灵活的界面设计。注意:利用对象的注意:利用对象的tag属性属性可以方便的获取对象句柄,保证回可以方便的获取对象句柄,保证回调程序正确运行,建议对象的调程序正确运行,建议对象的tag属性采用具有特定含义的属性采用具有特定含义的字符来表示。字符来表示。7/5/2022337/5/2022347/5/2022357/5/2022367/5/202237新建界面的选项预览窗口是否在新建时保存文件最近打开的界面文件的列表打开文件浏览器7/5/202238设计工作区控件选择区菜单条工具条对齐工具文件编辑菜单编辑对象属性对象列表运行界面工作区缩放句柄进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记想起那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着“怎么这么热怎么这么热”,于是三,于是三五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到“强子,别跑强子,别跑了,快来我给你扇扇了,快来我给你扇扇”。孩子们才不听这一套,跑个没完,直到累气喘吁吁,。孩子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,“你你看热的,跑什么?看热的,跑什么?”此时这把蒲扇,是那么凉快,那么的温馨幸福,有母亲此时这把蒲扇,是那么凉快,那么的温馨幸福,有母亲的味道!蒲扇是中国传统工艺品,在我国已有三千年多年的历史。取材的味道!蒲扇是中国传统工艺品,在我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧道,袅道,袅

    注意事项

    本文(MATLAB-GUI图形用户界面设计(1).ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开