MATLAB课件 第9讲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.事件驱动机制 面向对象的程序设计是以对象感知事件的过程为编程单位, 这种程序设计的方法称为事件驱动机制。 2.回调函数 回调函数就是处理该事件的程序,它定义对象怎样处理信息 并响应某事件,该函数不会主动运行,是由主控程序调用的。 gcbo为正在执行回调的对象句柄,可以使用它来查询该对象 的属性。例如: get(gcbo,’Value’) MATLAB将Tag属性作为每一个控件的唯一标识符。GUIDE 在生成M文件时,将Tag属性作为前缀,放在回调函数关键 字Callback前,通过下画线连接而成函数名。例如:
Parent、UserData、Visible等公共属性外,还有一些常用 的特殊属性。 1.基本控制属性 (1)Style属性。 (2)Tag属性。 (3)String属性。 (4)Type属性。 (5)BackgroundColor、ForegroundColor属性。 (6)Position属性。 (7)Units属性。 (8)字体属性。包括: FontAngle属性。
9.2图形用户界面设计工具
MATLAB的用户界面设计工具有多个,常用的有图形用户界 面设计窗口(Layout Editor)、对象属性查看器 (Prooerty Inspector)、菜单编辑器(Menu Editor)、 位置调整工具(Align Objects)、Tab顺序编辑器(Tab Order Editor)、工具栏编辑器(Toolbar Editor)、对象 浏览器(Object Browser)、M文件编辑器(MFileEditor)等。 9.2.1图形用户界面设计窗口 1.GUI设计模板 在MATLAB主窗口中,选择“File”菜单中的“New”菜单项, 再 选择其中的”GUI“命令,弹出GUI设计模板,如图所示
(5)DeleteFcn属性。 (6)Interruptible属性。 图形窗口对象还有一些特殊的事件属性。 CloseRequestFcn属性。 KeyPressFcn属性。 ResizeFcn属性。 WindowButtonDownFcn属性。 WindowButtonMotionFcn属性。 WindowButtonUpFcn属性。 9.1.3回调函数 在图形用户界面中,每一控件均与一或数个函数或程序相 关,此相关之程序称为回调函数(callbacks).
9.3GUI编程
9.3.1建立控件对象 MATLAB提供了用于建立控件对象的函数uicontrol,其调 用格式为 对象句柄=uncontrol(图形窗口句柄,属性名1,属性值1, 属性名2,属性值2,·· ·) • 例如,在图形窗口上形成滑动条: fh=figure('position',[100,200,320,160]); • sh=uicontrol(fh,'Style','slider',... • 'Max',100,'Min',0,'Value',25,... • 'sliderstep',[0.05 0.2],... • 'position',[60 100 150 30]);
2.GUI设计窗口 在GUI设计模板中选中一个模板,然后单击“OK”按钮,就 会 显示GUI设计窗口。就会显示GUI设计窗口。选择不同的 GUI设计模板时,在GUI设计窗口中显示的结果不一样。图 所示为选择Black GUI设计模板后显示的GUI设计窗口。 3.GUI设计窗口的基本操作 在GUI 设计窗口创建图形对象后,通过双击该对象,就会显 示该对象的属性编辑器。在选中图形对象的前提下,单击鼠 标右键,则弹出一个快捷菜单,用户可以从中选择某个子菜 单进行相应的设计。 例如,选中已创建的Edit Text 对象,单击鼠标右键,将显 示如图所示的快捷菜单。
function pushbuttonlCallback(hobject,eventdata,handles) 3.handles 结构体 GUI中的所有控件使用同一个handles机构体,handles结 构体中保存了图形窗口中所有对象的句柄,可以使用 handles获取或设置某个对象的属性。 set(handles.text1,’string’,’welcome’) GUIDE将数据与GUI图形关联起来,并使之能被所有GUI控 件的回调使用。GUI数据常被定义为handles结构,GUIDE 使用guidata函数生成和维护handles结构体,设计者可以 根据需要添加字段,将数据保存到handles结构的指定段中 ,可以实现回调间数据共享。
(9)静态文本(Static Text). 2.菜单(Uimenu) 在Windows程序中,菜单是一个必不可少的程序元素。通 过使用菜单,可以把对程序的各种操作命令非常规范有效地 表示给用户,单击菜单项程序执行相应的功能。MATLAB的 各个图形窗口有自己的菜单栏,包括File、Edit、View、 Insert、Tool、Windows和Help共7个菜单栏。 3.快捷菜单(Uicontextmenu) 快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。 这种菜单出现的位置是不固定的,而且总是和某个图形对象 联系。 4.按钮组(Uibuttongroup)
第九章 图形用户 界面设计
目 录
9.1用户界面对象 9.2图形用户界面设计工具 9.3GUI编程
本章学习目标 掌握GUI开发环境(GUIDE)的使用方法。 掌握各种控件的属性和创建方法。 掌握菜单设计的方法。 掌握回调函数的使用方法。
9.1用户界面对象
在MATLAB中,每个图形用户界面都是由若干个不同的用户 界面(UI)对象组成的。用户界面也是有层次的,其层次结 构如图所示。
图形窗口
按钮组
控件
快捷菜单
菜单
面板
工具栏

工具栏 按钮
工具栏 双位按钮
9.1.1用户界面对象概述 1.控件(Uicontrol) 控件是显示数据或接受数据输入的相对独立的用户界面元素。 常用的控件如下. (1)按钮(Push Button). (2)双位按钮(toggle Button). (3)单选按钮(Radio Button). (4)复选框(Check Box). (5)列表框(List Box). (6)弹出框(Pop-up Menu). (7)编辑框(Edit Box). (8)滑动条(Slider).
操作步骤如下。 (1)打开GUI设计窗口,添加有关图形对象。 (2)利用属性编辑器,设置图形对象属性。 (3)利用位置调整工具,调整控件位置。 (4)保存图形用户界面。 (5)编写代码,实现控件功能。 (6)运行图形用户界面。
例9.2在例9.1的图形窗口中添加图形窗口的默认菜单和一个 自定义菜单项“Option”.Option”菜单项的内容如图所示, 其 中Grid on控制给坐标轴加网格线,Box on控制给坐标轴加 边框,Window Color控制图形窗口的背景颜色。 操作步骤如下: (1)显示图形窗口的默认菜单。 (2)添加自定义菜单。 (3)编写代码,实现自定义菜单功能。
例如,要将向量X中的数据保存到handles结构体中,按照 下面的步骤进行操作。 (1)给handles结构体添加新字段并赋值,即 handles.mydata=X; (2)用guidata函数保存数据,即 guidata(hObject,handles) 其中,hObject是执行回调的控件对象的句柄。 要在另一个回调中提取数据,使用下面的命令: X=handles.mydata; 9.1.4GUI的设计方式 在MATLAB中,GUI的设计方式有以下两种。 (1)通过使用MATLAB提供的图形用户界面设计工具 (Graphical User Interface Development
9.2.2对象属性查看器 利用对象属性查看器,可以查看每个对象的属性值,也可以 修改、设置对象的属性值。在选中某个对象后,从GUI设计 窗口工具栏上选择“Property Inspector”命令按钮, 或 者 选择“View”菜单中的“Property Inspector”命令,打开 对象 属性器如图所示。
按钮组是一种容器,用于对图形窗口中的单选钮和双选按钮 集合进行逻辑分组。 5.面板(Uipanel) 面板对象用于对图形窗口中的控件和坐标轴进行分组,便于 用户对一组相关的控件和坐标轴进行管理。 6.工具栏(Uitoolbar) 通常情况下,工具栏包含的按钮和窗体菜单中的菜单项相对 应,以便提供对应用程序的常用功能和命令进行快速访问。 7.表(Uitable) 用表格形式显示数据。这是MATLAB2008版本新增的控件。 9.1.2控件的公共属性 MATLAB的控件对象使用相同的属性类型,但是这些属性对 于不同类型的控件对象,其含义不尽相同。除Children、
2.设置菜单属性 在创建菜单时,可以设置菜单的属性,菜单编辑器右边列出 了菜单的主要属性。 (1)Label属性。 (2)Tag属性。 (3)Accelerator属性。 (4)菜单项外观属性。 Sparator属性。Check属性。Enable属性。 (5)Callback属性。 此外,菜单对象还具有Children 、Parent、Type UserData、Visible等属性,这些属性可在单击“More Properties”按钮后,打开属性查看器进行设置。
FontName属性。 FontSize属性。 FontUnits属性。 FontWeight属性。 (9)HorizontalAlignment 属性。 (10)Max、Min属性。 (11)Value属性。 2.事件响应属性。 (1)Callback属性。 (2)BusyAction属性。 (3)ButtonDownFcn属性。 (4)CreatFcn属性。
9.2.3菜单编辑器 利用菜单编辑器可以创建、设置、修改下拉式菜单和快捷菜 单。从GUI设计窗口的工具栏上选择”Menu Editor”命令按 钮 ,或者选择“Tool”菜单中的“Menu Editor”命令,即 可 打开菜单编辑器。 1.创建菜单 菜单编辑器左上角的第1个按钮用于创建一级菜单项。用户 可以通过单击它,来创建一级菜单。第二个按钮用于创建一 级菜单的子菜单,在选中已经创建的一级菜单后,可以单击 该按钮来创建选中的一级菜单项的子菜单。 菜单编辑器有两个选项卡,选择MenuBar选项卡,可以创 建下拉式菜单。选择Context Menus选项卡,可以创建快 捷菜单。
9.2.4位置调整工具 利用位置调整工具,可以对 GUI对象设计区内的多个对 象的位置进行调整。在选中 多个对象后,在GUI设计窗 口的工具栏上选择”Align Objects”命令按钮 ,或者 选择”Tools“菜单中的”Align Objects“命令,打开对象位 置调整器如图所示。Байду номын сангаас
9.2.5对象浏览器 利用对象浏览器,可以查看当前设计阶段的各个句柄图形对 象,从GUI设计窗口的工具栏上选择”Object Browser“ 命令按钮 ,或者选择”View“菜单中的”Object Browser“命令,打开对象浏览器如图所示。
Environment,GUIDE)来创建GUI。设计者用鼠标将需要 的对象拖曳到目的位置,即可完成布局设计,然后利用属性 查看器设置属性。这种方式简便高效。GUIDE将GUI的布局 代码存储在FIG文件中,同时还产生一个M文件用于存储 GUI的初始化设置和回调函数。 (2)使用M文件创建GUI。编写代码。调用uicontrol、 uimenu等创建GUI。这种方式不会产生FIG文件,只有M文 件,代码可移植性和通用型强。
9.2.6Tab顺序编辑器 利用Tab顺序编辑器(Tab Order Editor),可以设置用户 按键盘的Tab键时,对象被选中的先后顺序。选择“Tools” 菜 单中的“TAB Order Editor”命令,即打开Tab顺序编辑器。
9.2.7GUIDE设计示例 例9.1利用GUI设计工具设计如图所示的用户界面。该界面 包括一个用于显示图形的轴对象,显示的图形包括表面图、 网格线或等高线。绘制图形的功能通过3个命令按钮来实 现,用户通过单击相应的按钮,即可绘制相应图形。绘制图 形所需要的数据通过一个弹出框来选取。在弹出框中包括3 个选项,分别对应MATLAB的数据函数Pesks、Membrane 和用户定义的绘图数据Sin,用户可以通过选择相应的选项 来载入相应的绘图数据。
相关文档
最新文档