当前位置:
文档之家› 清华大学 Matlab GUI设计
清华大学 Matlab GUI设计
LOGO
设计风格简朴清 晰,灵感取自 Matlab界面。 实现功能均放在 菜单中。但 Command窗口 也可以用命令调 用。这样的设置 显得比前一个专 业一些。 如图为主成分分 析结果。
4.纯代码生成GUI
LOGO
利用纯代码生成GUI是Matlab GUI最本源的 设计方法,类似于在C或C++中用Windows API来设计界面。它具有以下特点。
组件排 列工具 菜单编 辑器 属性编 辑器
LOGO
组件布局编 辑器
查看M 文件
运行效果 GUI窗口界面
2.GUIDE开发工具
LOGO
在布置组件前,对GUI进行组态。“Tools – GUI Options”,得到以下对话框。用户 可以对所开发的GUI进行基本属性设定。
2.GUIDE开发工具
设计组件布局
2.GUIDE开发工具
LOGO
Matlab的GUIDE是一个组件布局工具集。 该工具在布局GUI同时会生成两个文件:
FIG文件。该文件包括GUI的图像窗口和所有子 对象的完全描述及属性值。
M文件。该文件包括用户用来发布和控制界面 的各种函数和回调函数(作为子函数)。该文 件不包含任何组件的布置信息。
2.GUIDE开发工具
LOGO
课堂演示:GUIDE组件布局
2.GUIDE开发工具
M文件编写
LOGO
当用户第一次储存当前的GUI时,GUIDE会自 动为用户生成相应的FIG文件和M文件。 用户在M文件中需要完成以下工作:
• 程序初始化设置 • 实现控件回调函数
最关键以及最难的两点:
• 程序流程控制 • 数据结构维护
3.GUIDE开发经验
GUI设计实例
多媒体大作业“音频处理软件” (王易之 & MQ)
LOGO
个性化的设计风 格,色彩浓艳夸 张。 控件均放在表面, 使用方便,但显 得比较低级。 软件使用的鲁棒 性还是比较好的。
3.GUIDE开发经验
GUI设计实例
系统工程大作业 (王易之 & WDM & JC)
1.GUI编程概述
Matlab GUI具有以下三个基本元素。
组件(Component)
LOGO
• 图形化控件(按钮、编辑框、列表、滚动条等), 由uicontrol创建; • 静态元素(窗口和文本字符串); • 菜单,由uimenu和uicontextmenu创建; • 坐标系,由axes创建;
LOGO
Matlab共有14种基本控件(可能不同版本会稍 有不同)。
• 按钮(Push Button)是最常用的,用来响应鼠标单 击事件; • 滑动条(Slider)主要用来为程序提供数值,该数值 被限制在[min, max]之间,用户通过滑动滑块来制定; • 单选按钮(Radio Button)经常多个联合使用(借 助按钮组),用于实现同一属性在不同取值间切换, 用户只能选一个; • 复选框(Check Box)和单选按钮类似,但提供用 户多选;
Axes函数。通过句柄来获取当前绘图区。
• axes(H); • plot(…);
3.GUIDE开发经验
GUI设计原则
简单性
• 界面设计力求简洁、清晰、直观、易用;
LOGO
一致性
• 界面风格统一一致,养成好习惯;
习常性
• 尽量使用人们熟悉的标志和符号;
其他因素• 注意界面的动态源自能。如响应要迅速、连续,长时 间计算最好给出进度条并允许中断。此外,还需要 有抵抗“野蛮操作”的鲁棒性。
2.GUIDE开发工具
后台与GUI的交流
Get函数。通过句柄获取控件当前的值。
• a = get(H,‘DefaultObjectTypePropertyName’) ;
LOGO
Set函数。通过句柄设置控件的值。
• set(H,‘PropertyName’,PropertyValue,...) ;
2.GUIDE开发工具
设计组件布局
GUIDE组件常用属性· 4
• 控件当前状态信息
ListboxTop:在列表框中显示的最顶层的字符串的索引 Max:最大值 Min:最小值 Value:控件的当前值
LOGO
不同组件对于以上基本属性可能各有一些特殊 的对应,用户应根据实际需要配置相应的属性。
2.GUIDE开发工具
全局变量的运用
LOGO
对于GUI程序,全局变量必不可少。一般有两 种全局变量的储存方法。
• 句柄储存。该方法利用全局的句柄结构(handles), 在其中添加变量,所有回调函数都接受这个句柄结 构参数。 如函数: function Play_Callback(hObject, eventdata, handles) • Global变量。该方法是Matlab程序中通用的。
图形窗口(Figure) 回应(Callback)
1.GUI编程概述
Matlab GUI具有以下三个基本元素。
组件 图形窗口
LOGO
• GUI的每一个组件都必须放在图形窗口中。Figure函 数可以用来创建空图像窗口。
回应
• 或称回调函数,指当用户单击或者键盘输入一些信 息后,程序在后台给予的响应,如执行相应的函数。
2.GUIDE开发工具
M文件编写
LOGO
GUI程序的初始化实际上就是数据的初始化。 一般可以在函数“X_OpeningFcn”中进行。该 函数在打开GUI的时候调用。
回调函数则是在用户增加控件的同时自动地在 M文件中生成。用户可以通过控件右键菜单中 的“callback”选项找到相应的回调函数,并 将其实现。
“从MySQL数据库生成NS2仿真数据” (王易之)
4.纯代码生成GUI
程序实例分析。
生成窗口
LOGO
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]);
3.GUIDE开发经验
GUI设计步骤
分析界面所要求实现的主要功能,明确任务 设计草图,考虑设计原则,并予以实现 编写对象的相应程序,检查功能完成情况
设计时可以参考很多优秀的专业软件。 对于多媒体应用来说,很多视频、音频、 图像处理软件都可以学习!
LOGO
当然,作为一个专业的程序员,在设计 时还必须要加入自己的风格,并保持自 己的风格!
guidata(hObject,handles);
• 访问handles中的全局变量,则可以直接访问。
2.GUIDE开发工具
全局变量的运用
Global储存全局变量。
LOGO
• 仅一条规则:在任何地方使用,在使用之前,先用 global进行“声明”。 • 如,定义全局变量: global g_var g_var = 100; • 在别的函数里要将g_var值赋给局部变量l_var则: global g_var l_var = g_var;
2.GUIDE开发工具
设计组件布局
GUIDE组件常用属性· 3
• 控件回调函数的执行
LOGO
BusyAction:处理回调函数的中断。有两种选项:即 Cancel:取消中断事件,queue:排队(默认设置) ButtonDownFcn属性:按钮按下时的处理函数 CallBack属性:是连接程序界面整个程序系统的实质性功 能的纽带。该属性值应该为一个可以直接求值的字符串, 在该对象被选中和改变时,系统将自动地对字符串进行求 值 CreateFcn:在对象产生过程中执行的回调函数 DeleteFcn:删除对象过程中执行的回调函数 Interruptible属性:指定当前的回调函数在执行时是否允许 中断,去执行其他的函数
Matlab GUI 程序设计
LOGO
Contents
1
2 3
LOGO
GUI编程概述
GUIDE开发工具 GUIDE开发经验 纯代码生成GUI
4
1.GUI编程概述
Matlab是一套高性能的数值计算和可视化 软件,兼有高效科学计算和友好图形界面 两方面优势。
LOGO
其图形用户界面(Graphical User Interfaces, GUI)是由窗口、光标、按键、菜单、文字 说明等对象(Objects)构成的一个用户界面。
2.GUIDE开发工具
设计组件布局
Matlab基本控件· 3。
LOGO
• 面板(Panel)和按钮组(Button Group)用以把相 关联的组件放在一起,使界面具有层次性和易用性; • ActiveX控件主要用于Matlab和其他应用程序的交互。
2.GUIDE开发工具
设计组件布局
GUIDE组件常用属性· 1
2.GUIDE开发工具
设计组件布局
GUIDE组件常用属性· 2
• 对象的常规信息
LOGO
Enable属性: 表示此控件的使能状态,设置为on”,表示 可选,为“off”时则表示不可选 Style:控件对象类型 Tag:控件表示(用户定义) TooltipString属性:提示信息显示。当鼠标指针位于此控 件上时,显示提示信息 UserData:用户指定数据 Position:控件对象的尺寸和位置 Units:设置控件的位置及大小的单位 有关字体的属性,如 FontAngle, FontName等
添加菜单
h_menu_file h_menu_edit h_menu_help = uimenu(H_fig,'label','File'); = uimenu(H_fig,'label','Edit'); = uimenu(H_fig,'label','Help'); = uimenu(h_menu_file,'label','exit','callback','close()');