好文档 - 专业文书写作范文服务资料分享网站

MATLAB_GUI设计-专题讲稿-王正盛

天下 分享 时间: 加入收藏 我要投稿 点赞

MATLAB GUI(Graphical User Interfaces-

图形用户界面)设计与制作

专题讲稿-简单版

王正盛 编写 2008-10-20

(南京航空航天大学理学院数学系,南京 210016)

目录:

1、 MATLAB图形用户界面(GUI)介绍

2、 图形用户界面中的图形对象的树结构层次关系图(Tree-structured hierarchy) 3、 图形用户界面的设计原则和一般步骤 4、 图形窗口的建立与控制 4.1 图形窗口的创建 4.2 图形窗口的常用属性 4.3 图形窗口的控制函数 5、 界面菜单的设计(uimenu) 5.1 用户菜单的创建 5.2 菜单对象的常用属性

6、 界面用户控件的设计(uicontrol) 6.1 控件种类与控件制作函数 6.2 控件制作示例

6.3 帮助、出错、警告窗口的设计 7、 用户界面设计工具 8、 常见MATLAB GUI举例

王正盛 2008-10-20-MATLAB GUI设计-专题讲稿-简单版 1

1 MATLAB图形用户界面(GUI)介绍

用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。

图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。

MATLAB为表现其基本功能而设计的演示程序demo 是使用图形界面的最好范例。MATLAB的用户,在指令窗中运行demo 打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的内容。

即便比较熟悉MATLAB的读者,在他初次编写GUI程序时,也会感到棘手。为使读者获得制作自己GUI的体验,本章“入门”节提供了一个简单的示例。读者只要输入所提供的程序,就可引出相应的界面。

王正盛 2008-10-20-MATLAB GUI设计-专题讲稿-简单版 2

为什么创建图形界面GUI?

在运行了demo例子后,很可能会问“为什么要在MATLAB中建立一个GUI?”这是一个很好的问题,简单的回答是可能并不需要.使用MATLAB来分析数据,求解问题,绘制结果的绝大多数的人,并不会发现GUI工具很有用。

但另一方面,GUI可以在MATLAB中生成非常有效的工具和应用程序,或是建立演示工作的交互式界面。

生成用户图形界面的最常见的理由:

? 编写一个需多次反复使用的实用函数,菜单、按钮、文本框作为输入方法具有意义;

? 编写函数或开发应用程序供别人使用;

? 创建一个过程、技术或分析方法的交互式示例; ? 认为GUI的简洁,性能良好,并且想自己实践一下。

入门例子:加法计算器(后面详细讲解制作过程)

分别用MATLAB GUI和Delphi制作了两个数加法的简单应用程序。图一是用Delphi制作的,图二是用MATLAB GUI制作的。明显可见用GUI制作的加法器可以进行向量加法,而且可以直接应用内部函数,如sin(x),abs(x)等等,另外还可以进行复数运算。这些都比Delphi制作的加法器优越。

王正盛 2008-10-20-MATLAB GUI设计-专题讲稿-简单版

3

M文件代码:(add.m)

clf reset

set(gcf,'unit','normalized','position',[0.1,0.2,0.64,0.35]); set(gcf,'defaultuicontrolunits','normalized'); set(gcf,'defaultuicontrolfontsize',12);

set(gcf,'defaultuicontrolfontname','隶书'); set(gcf,'defaultuicontrolhorizontal','left'); str='加法计算器with MATALB';

set(gcf,'name',str,'numbertitle','off');

hedit1=uicontrol(gcf,'style','edit','unit','normalized',... 'position',[0.1,0.65,0.232,0.18],'horizontal','left',... 'callback','z1=str2num(get(gcbo,''string''));');

hedit2=uicontrol(gcf,'style','edit','unit','normalized',... 'position',[0.5,0.65,0.232,0.18],'horizontal','left',... 'callback','z2=str2num(get(gcbo,''string''));');

hedit3=uicontrol(gcf,'style','edit','unit','normalized',... 'position',[0.45,0.25,0.232,0.18],'horizontal','left'); %z3=z1+z2

ht1=uicontrol(gcf,'style','push',... 'string','加法运算',...

'position',[0.17,0.345,0.2,0.2],... 'callback', 'set(hedit3,''string'',num2str(z1+z2))');

gcf ---------- get current figure

gcbo ---------- get handle to current callback object gca ----------- get handle to current axis

王正盛 2008-10-20-MATLAB GUI设计-专题讲稿-简单版 4

2 图形用户界面中的图形对象的树结构层次关系图

(Tree-structured hierarchy)

GUI对象层次结构

正如我们在上一章所展示的那样,由图形命令生成的每一事物是一个图形对象。图形对象不仅包括uimenu和uicontrol对象,而且还包括图形、坐标轴和他们的子对象。从另一个角度来看这一层次结构。计算机的屏幕本身是根结点,图形是根对象的子对象,坐标轴,uimenu ,uicontrol是图形的子对象。

根可以包括多个图形,每个图形含有一组或多组坐标轴以及其子对象,每个图形也可以有一个或多个与坐标轴无关的uimenu和uicontrol。虽然uicontrol对象无子对象结点,但他们确实具有多种类型。uimenu对象常将其它的uimenu对象作为其子对象。

根计算机屏幕图图子

UimenuUicontrol型式:按钮键无线按钮键检查框滑标弹出式菜单框架文本编辑uimenuuimenu兄

弟座标轴父

图1 GUI对象层次结构图

注意:运行MATLAB的不同型号的计算机或平台上,产生不同的图形显示。Unix工作站使用不同的X Window系统,具有几个窗口程序,如mwn或twm以控制显示的布局。 PC机靠Microsoft Windows或Windows NT进行窗口管理,Macintosh计算机用Macintosh工具箱程序作窗口。虽然在各种平台上,显示看起来有很大的不同,但在很多的情况下,句柄图形的编码是一致的。体现句柄图形例程的函数,包括应用uimenu和uicontrol对象的函数,通常运行在所有平台。

王正盛 2008-10-20-MATLAB GUI设计-专题讲稿-简单版

5

MATLAB_GUI设计-专题讲稿-王正盛

MATLABGUI(GraphicalUserInterfaces-图形用户界面)设计与制作专题讲稿-简单版王正盛编写2008-10-20(南京航空航天大学理学院数学系,南京
推荐度:
点击下载文档文档为doc格式
5vfsp4q39t7z7sh756dx
领取福利

微信扫码领取福利

微信扫码分享