版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
清华大学-Matlab-GUI设计1.GUI编程概述Matlab是一套高性能的数值计算和可视化软件,兼有高效科学计算和友好图形界面两方面优势。其图形用户界面(GraphicalUserInterfaces,GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。1.GUI编程概述MatlabGUI具有以下三个基本元素。组件(Component)图形化控件(按钮、编辑框、列表、滚动条等),由uicontrol创建;静态元素(窗口和文本字符串);菜单,由uimenu和uicontextmenu创建;坐标系,由axes创建;图形窗口(Figure)回应(Callback)1.GUI编程概述MatlabGUI具有以下三个基本元素。组件图形窗口GUI的每一个组件都必须放在图形窗口中。Figure函数可以用来创建空图像窗口。回应或称回调函数,指当用户单击或者键盘输入一些信息后,程序在后台给予的响应,如执行相应的函数。1.GUI编程概述MatlabGUI的开发步骤。GUI组件布局GUI组件编程保存并发布GUIMatlabGUI的实现方法。GUIDE开发工具优点:方便,易上手,适合新手缺点:代码框架较复杂,须多个文件储存M文件纯代码优点:代码纯净、清晰,只需M文件储存,手段专业缺点:代码量大且繁琐,不适合新手2.GUIDE开发工具Matlab的GUIDE是一个组件布局工具集。该工具在布局GUI同时会生成两个文件:FIG文件。该文件包括GUI的图像窗口和所有子对象的完全描述及属性值。M文件。该文件包括用户用来发布和控制界面的各种函数和回调函数(作为子函数)。该文件不包含任何组件的布置信息。2.GUIDE开发工具利用GUIDE创建GUI在Matlab命令窗中输入“guide”得到以下对话框当要打开已存在的文件“mygui.fig”,则输入“guidemygui.fig”即可选择默认的空白界面来生成GUI2.GUIDE开发工具利用GUIDE创建GUI得到的空白GUI开发界面如下GUI窗口界面组件布局编辑器组件排列工具菜单编辑器属性编辑器运行效果查看M文件2.GUIDE开发工具在布置组件前,对GUI进行组态。“Tools–GUIOptions”,得到以下对话框。用户可以对所开发的GUI进行基本属性设定。2.GUIDE开发工具设计组件布局Matlab共有14种基本控件(可能不同版本会稍有不同)。按钮(PushButton)是最常用的,用来响应鼠标单击事件;滑动条(Slider)主要用来为程序提供数值,该数值被限制在[min,max]之间,用户通过滑动滑块来制定;单选按钮(RadioButton)经常多个联合使用(借助按钮组),用于实现同一属性在不同取值间切换,用户只能选一个;复选框(CheckBox)和单选按钮类似,但提供用户多选;2.GUIDE开发工具设计组件布局Matlab基本控件·2。文本框(EditText)支持用户通过键盘输入;文本标签(StaticText)用以显示固定字符串;下拉菜单(Pop-UpMenu)类似于一组单选框;下拉列表(ListBox)类似于一组复选框;双位按钮(ToggleButton)类似于按钮,但它保持“按下”或“抬起”两个状态,并根据输入在两者间切换;坐标轴(Axes)用来显示图形;表格(Table)用来显示表格;2.GUIDE开发工具设计组件布局Matlab基本控件·3。面板(Panel)和按钮组(ButtonGroup)用以把相关联的组件放在一起,使界面具有层次性和易用性;ActiveX控件主要用于Matlab和其他应用程序的交互。2.GUIDE开发工具设计组件布局GUIDE组件常用属性·1控件风格和外观BackgroundColor:设置控件背景颜色,使用[RGB]或颜色定义CData:在控件上显示的真彩色图像,使用矩阵表示ForegroundColor:文本颜色String属性:控件上的文本,以及列表框和弹出菜单的选项Visible:控件是否可见2.GUIDE开发工具设计组件布局GUIDE组件常用属性·2对象的常规信息Enable属性:表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选Style:控件对象类型Tag:控件表示(用户定义)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息UserData:用户指定数据Position:控件对象的尺寸和位置Units:设置控件的位置及大小的单位有关字体的属性,如FontAngle,FontName等2.GUIDE开发工具设计组件布局GUIDE组件常用属性·3控件回调函数的执行BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)ButtonDownFcn属性:按钮按下时的处理函数CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值CreateFcn:在对象产生过程中执行的回调函数DeleteFcn:删除对象过程中执行的回调函数Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数2.GUIDE开发工具设计组件布局GUIDE组件常用属性·4控件当前状态信息ListboxTop:在列表框中显示的最顶层的字符串的索引Max:最大值Min:最小值Value:控件的当前值不同组件对于以上基本属性可能各有一些特殊的对应,用户应根据实际需要配置相应的属性。2.GUIDE开发工具课堂演示:GUIDE组件布局2.GUIDE开发工具M文件编写当用户第一次储存当前的GUI时,GUIDE会自动为用户生成相应的FIG文件和M文件。用户在M文件中需要完成以下工作:程序初始化设置实现控件回调函数最关键以及最难的两点:程序流程控制数据结构维护2.GUIDE开发工具M文件编写GUI程序的初始化实际上就是数据的初始化。一般可以在函数“X_OpeningFcn”中进行。该函数在打开GUI的时候调用。回调函数则是在用户增加控件的同时自动地在M文件中生成。用户可以通过控件右键菜单中的“callback”选项找到相应的回调函数,并将其实现。2.GUIDE开发工具全局变量的运用对于GUI程序,全局变量必不可少。一般有两种全局变量的储存方法。句柄储存。该方法利用全局的句柄结构(handles),在其中添加变量,所有回调函数都接受这个句柄结构参数。如函数:
functionPlay_Callback(hObject,eventdata,handles)Global变量。该方法是Matlab程序中通用的。2.GUIDE开发工具全局变量的运用句柄储存全局变量。定义或者修改一个全局变量(如“variable”)时,可直接使用如下代码:handles.variable=0;每个函数中一旦更改了handles中的任何一个值,最后均需要用以下代码来进行保存,使数据更改真正起作用:guidata(hObject,handles);访问handles中的全局变量,则可以直接访问。2.GUIDE开发工具全局变量的运用Global储存全局变量。仅一条规则:在任何地方使用,在使用之前,先用global进行“声明”。如,定义全局变量:
globalg_var g_var=100;在别的函数里要将g_var值赋给局部变量l_var则:
globalg_var l_var=g_var;2.GUIDE开发工具后台与GUI的交流
Get函数。通过句柄获取控件当前的值。a=get(H,‘DefaultObjectTypePropertyName’);Set函数。通过句柄设置控件的值。set(H,‘PropertyName’,PropertyValue,...);Axes函数。通过句柄来获取当前绘图区。axes(H);plot(…);3.GUIDE开发经验GUI设计原则简单性界面设计力求简洁、清晰、直观、易用;一致性界面风格统一一致,养成好习惯;习常性尽量使用人们熟悉的标志和符号;其他因素注意界面的动态性能。如响应要迅速、连续,长时间计算最好给出进度条并允许中断。此外,还需要有抵抗“野蛮操作”的鲁棒性。3.GUIDE开发经验GUI设计步骤分析界面所要求实现的主要功能,明确任务设计草图,考虑设计原则,并予以实现编写对象的相应程序,检查功能完成情况设计时可以参考很多优秀的专业软件。对于多媒体应用来说,很多视频、音频、图像处理软件都可以学习!当然,作为一个专业的程序员,在设计时还必须要加入自己的风格,并保持自己的风格!3.GUIDE开发经验GUI设计实例多媒体大作业“音频处理软件”
(王易之&MQ)个性化的设计风格,色彩浓艳夸张。控件均放在表面,使用方便,但显得比较低级。软件使用的鲁棒性还是比较好的。3.GUIDE开发经验GUI设计实例系统工程大作业(王易之&WDM&JC)设计风格简朴清晰,灵感取自Matlab界面。实现功能均放在菜单中。但Command窗口也可以用命令调用。这样的设置显得比前一个专业一些。如图为主成分分析结果。4.纯代码生成GUI利用纯代码生成GUI是MatlabGUI最本源的设计方法,类似于在C或C++中用WindowsAPI来设计界面。它具有以下特点。代码的纯粹性:所有代码都由用户编写,便于管理和分离(多文件)。整个软件就是一堆M文件。绝对可控性。开发者掌握了所有的权利,可以在开发中更自由地发挥,对于专业程序员,这点很有吸引力。对于有一定基础或者习惯这种编程方式的同学,可以使用这种开发方式。4.纯代码生成GUI程序实例分析。“从MySQL数据库生成NS2仿真数据”(王易之)4.纯代码生成GUI程序实例分析。生成窗口
添加菜单H_fig=figure(1);set(H_fig,'unit','normalized','Position',[0.1,0.1,0.8,0.8],'MenuBar','none','name','Build_NS2_Files','Color',[0.8,0.8,0.8]);h_menu_file=uimenu(H_fig,'label','File');h_menu_edit=uimenu(H_fig,'label','Edit');h_menu_help=uimenu(H_fig,'label','Help');
h_submenu_file_exit=uimenu(h_menu_file,'label','exit','callback','close()');4.纯代码生成GUI程序实例分析。调整单位
添加控件set(H_fig,'defaultuicontrolunits','normalized');h_panel_build=uipanel('position',[0.35,0.02,0.6,0.2],'backgroundColor',[0.8,0.8,0.8]);h_push_mixtables=uicontrol(H_fig,'style','push','position',[0.4,0.05,0.225,0.12],'string','Mixtables...','fontsize',20,'BackgroundColor','g',...'callback','mixtables(h_list_addlinks,h_text_system);');h_edit_username=uicontrol(H_fig,'style','edit','position',[0.05,0.84,0.25,0.05],'string',Mysql_username,'BackgroundColor',[0.9,0.9,0.9],'fontsize',15,...'callback','Mysql_username=get(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度呈现大全人事管理篇十篇
- 《行政职业能力测验》2024年公务员考试尤溪县临考冲刺试卷含解析
- 八下期末考拔高测试卷(5)(解析版)
- 寒假自习课 25春初中道德与法治八年级下册教学课件 第三单元 第五课 第2课时 基本政治制度
- 《皮外骨伤科病证》课件
- 铁路线路设计合同三篇
- 服装店卫生消毒指南
- 幼儿园工作总结携手陪伴成长无忧
- 餐饮行业助理工作总结
- 感恩父母演讲稿锦集八篇
- 空调系统维保记录表格模板
- QC小组活动管理制度
- 市区自备井排查整治工作实施方案
- 8位半万用表大比拼
- 品牌管理部绩效考核指标
- 沥青路面施工监理工作细则
- 物业设备设施系统介绍(详细).ppt
- 公司走账合同范本
- 获奖一等奖QC课题PPT课件
- 人教版小学三年级数学上册判断题(共3页)
- 国际项目管理手册The Project Manager’s Manual
评论
0/150
提交评论