清华大学 Matlab GUI设计_第1页
清华大学 Matlab GUI设计_第2页
清华大学 Matlab GUI设计_第3页
清华大学 Matlab GUI设计_第4页
清华大学 Matlab GUI设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LOGOMatlab GUI 程序设计程序设计LOGOContentsGUI编程概述1GUIDE开发工具2GUIDE开发经验3纯代码生成GUI4LOGO1.GUI编程概述vMatlab是一套高性能的数值计算和可视化软件,兼有高效科学计算和友好图形界面两方面优势。v其图形用户界面(Graphical User Interfaces, GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。LOGO1.GUI编程概述vMatlab GUI具有以下三个基本元素。p组件(Component) 图形化控件(按钮、编辑框、列表、滚动条等),由uicontrol创建; 静态元

2、素(窗口和文本字符串); 菜单,由uimenu和uicontextmenu创建; 坐标系,由axes创建;p图形窗口(Figure)p回应(Callback)LOGO1.GUI编程概述vMatlab GUI具有以下三个基本元素。p组件p图形窗口 GUI的每一个组件都必须放在图形窗口中。Figure函数可以用来创建空图像窗口。p回应 或称回调函数,指当用户单击或者键盘输入一些信息后,程序在后台给予的响应,如执行相应的函数。LOGO1.GUI编程概述vMatlab GUI的开发步骤。pGUI组件布局pGUI组件编程p保存并发布GUIvMatlab GUI的实现方法。pGUIDE开发工具 优点:方便

3、,易上手,适合新手 缺点:代码框架较复杂,须多个文件储存pM文件纯代码 优点:代码纯净、清晰,只需M文件储存,手段专业 缺点:代码量大且繁琐,不适合新手LOGO2.GUIDE开发工具vMatlab的GUIDE是一个组件布局工具集。该工具在布局GUI同时会生成两个文件:pFIG文件。该文件包括GUI的图像窗口和所有子对象的完全描述及属性值。pM文件。该文件包括用户用来发布和控制界面的各种函数和回调函数(作为子函数)。该文件不包含任何组件的布置信息。LOGO2.GUIDE开发工具v利用GUIDE创建GUIp在Matlab命令窗中输入“guide”得到以下对话框p当要打开已存在的文件“mygui.f

4、ig”,则输入“guide mygui.fig”即可选择默认的空白界面来生成GUILOGO2.GUIDE开发工具v利用GUIDE创建GUIp得到的空白GUI开发界面如下GUI窗口界面组件布局编辑器组件排列工具菜单编辑器属性编辑器运行效果查看M文件LOGO2.GUIDE开发工具v在布置组件前,对GUI进行组态。“Tools GUI Options”,得到以下对话框。用户可以对所开发的GUI进行基本属性设定。LOGO2.GUIDE开发工具v设计组件布局pMatlab共有14种基本控件(可能不同版本会稍有不同)。 按钮(Push Button)是最常用的,用来响应鼠标单击事件; 滑动条(Slider

5、)主要用来为程序提供数值,该数值被限制在min, max之间,用户通过滑动滑块来制定; 单选按钮(Radio Button)经常多个联合使用(借助按钮组),用于实现同一属性在不同取值间切换,用户只能选一个; 复选框(Check Box)和单选按钮类似,但提供用户多选;LOGO2.GUIDE开发工具v设计组件布局pMatlab基本控件2。 文本框(Edit Text)支持用户通过键盘输入; 文本标签(Static Text)用以显示固定字符串; 下拉菜单(Pop-Up Menu)类似于一组单选框; 下拉列表(List Box)类似于一组复选框; 双位按钮(Toggle Button)类似于按钮,

6、但它保持“按下”或“抬起”两个状态,并根据输入在两者间切换; 坐标轴(Axes)用来显示图形; 表格(Table)用来显示表格;LOGO2.GUIDE开发工具v设计组件布局pMatlab基本控件3。 面板(Panel)和按钮组(Button Group)用以把相关联的组件放在一起,使界面具有层次性和易用性; ActiveX控件主要用于Matlab和其他应用程序的交互。LOGO2.GUIDE开发工具v设计组件布局pGUIDE组件常用属性1 控件风格和外观BackgroundColor:设置控件背景颜色,使用R G B或颜色定义CData:在控件上显示的真彩色图像,使用矩阵表示Foreground

7、Color:文本颜色String属性:控件上的文本,以及列表框和弹出菜单的选项Visible:控件是否可见LOGO2.GUIDE开发工具v设计组件布局pGUIDE组件常用属性2 对象的常规信息Enable属性: 表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选Style:控件对象类型Tag:控件表示(用户定义)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息UserData:用户指定数据Position:控件对象的尺寸和位置Units:设置控件的位置及大小的单位有关字体的属性,如 FontAngle, FontName等LOGO2.G

8、UIDE开发工具v设计组件布局pGUIDE组件常用属性3 控件回调函数的执行BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)ButtonDownFcn属性:按钮按下时的处理函数CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值CreateFcn:在对象产生过程中执行的回调函数DeleteFcn:删除对象过程中执行的回调函数Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数LOGO2.G

9、UIDE开发工具v设计组件布局pGUIDE组件常用属性4 控件当前状态信息ListboxTop:在列表框中显示的最顶层的字符串的索引Max:最大值Min:最小值Value:控件的当前值p不同组件对于以上基本属性可能各有一些特殊的对应,用户应根据实际需要配置相应的属性。LOGO2.GUIDE开发工具课堂演示:GUIDE组件布局LOGO2.GUIDE开发工具vM文件编写p当用户第一次储存当前的GUI时,GUIDE会自动为用户生成相应的FIG文件和M文件。p用户在M文件中需要完成以下工作: 程序初始化设置 实现控件回调函数p最关键以及最难的两点: 程序流程控制 数据结构维护LOGO2.GUIDE开发

10、工具vM文件编写pGUI程序的初始化实际上就是数据的初始化。一般可以在函数“X_OpeningFcn”中进行。该函数在打开GUI的时候调用。p回调函数则是在用户增加控件的同时自动地在M文件中生成。用户可以通过控件右键菜单中的“callback”选项找到相应的回调函数,并将其实现。LOGO2.GUIDE开发工具v全局变量的运用p对于GUI程序,全局变量必不可少。一般有两种全局变量的储存方法。 句柄储存。该方法利用全局的句柄结构(handles),在其中添加变量,所有回调函数都接受这个句柄结构参数。 如函数: function Play_Callback(hObject, eventdata, h

11、andles) Global变量。该方法是Matlab程序中通用的。LOGO2.GUIDE开发工具v全局变量的运用p句柄储存全局变量。 定义或者修改一个全局变量(如“variable”)时,可直接使用如下代码:handles.variable = 0; 每个函数中一旦更改了handles中的任何一个值,最后均需要用以下代码来进行保存,使数据更改真正起作用:guidata(hObject,handles); 访问handles中的全局变量,则可以直接访问。LOGO2.GUIDE开发工具v全局变量的运用pGlobal储存全局变量。 仅一条规则:在任何地方使用,在使用之前,先用global进行“声明

12、”。 如,定义全局变量:global g_varg_var = 100; 在别的函数里要将g_var值赋给局部变量l_var则:global g_varl_var = g_var;LOGO2.GUIDE开发工具v后台与GUI的交流pGet函数。通过句柄获取控件当前的值。 a = get(H,DefaultObjectTypePropertyName) ;pSet函数。通过句柄设置控件的值。 set(H,PropertyName,PropertyValue,.) ;pAxes函数。通过句柄来获取当前绘图区。 axes(H); plot();LOGO3.GUIDE开发经验vGUI设计原则p简单性

13、界面设计力求简洁、清晰、直观、易用;p一致性 界面风格统一一致,养成好习惯;p习常性 尽量使用人们熟悉的标志和符号;p其他因素 注意界面的动态性能。如响应要迅速、连续,长时间计算最好给出进度条并允许中断。此外,还需要有抵抗“野蛮操作”的鲁棒性。LOGO3.GUIDE开发经验vGUI设计步骤p分析界面所要求实现的主要功能,明确任务p设计草图,考虑设计原则,并予以实现p编写对象的相应程序,检查功能完成情况设计时可以参考很多优秀的专业软件。对于多媒体应用来说,很多视频、音频、图像处理软件都可以学习!当然,作为一个专业的程序员,在设计时还必须要加入自己的风格,并保持自己的风格!LOGO3.GUIDE开

14、发经验vGUI设计实例p多媒体大作业“音频处理软件” (王易之 & MQ)个性化的设计风格,色彩浓艳夸张。控件均放在表面,使用方便,但显得比较低级。软件使用的鲁棒性还是比较好的。LOGO3.GUIDE开发经验vGUI设计实例p系统工程大作业 (王易之 & WDM & JC)设计风格简朴清晰,灵感取自Matlab界面。实现功能均放在菜单中。但Command窗口也可以用命令调用。这样的设置显得比前一个专业一些。如图为主成分分析结果。LOGO4.纯代码生成GUIv利用纯代码生成GUI是Matlab GUI最本源的设计方法,类似于在C或C+中用Windows API来设计界面。

15、它具有以下特点。p代码的纯粹性:所有代码都由用户编写,便于管理和分离(多文件)。整个软件就是一堆M文件。p绝对可控性。开发者掌握了所有的权利,可以在开发中更自由地发挥,对于专业程序员,这点很有吸引力。对于有一定基础或者习惯这种编程方式的同学,可以使用这种开发方式。LOGO4.纯代码生成GUIv程序实例分析。p“从MySQL数据库生成NS2仿真数据” (王易之)LOGO4.纯代码生成GUIv程序实例分析。p生成窗口p添加菜单H_fig = figure(1);set(H_fig,unit,normalized,Position,0.1,0.1,0.8,0.8,MenuBar,none,name,

16、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();LOGO4.纯代码生成GUIv程序实例分析。p调整单位p添加控件set(H_fig,defaultuicontrolunits,normalized);h_

17、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,Mix tables.,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,font

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论