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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLABGUI(GraphicalUserInterfaces-图形用户界面)设计与制作专题讲稿-简单版王正盛编写2008-10-20(南京航空航天大学理学院数学系,南京210016)目录:1、MATLAB图形用户界面(GUI)介绍2、图形用户界面中的图形对象的树结构层次关系图(Tree-structuredhierarchy)3、图形用户界面的设计原则和一般步骤4、图形窗口的建立与控制4.1图形窗口的创建4.2图形窗口的常用属性4.3图形窗口的控制函数5、界面菜单的设计(uimenu)5.1用户菜单的创建5.2菜单对象的常用属性6、界面用户控件的设计(uicontrol)6.1控件种类与控件制作函数6.2控件制作示例6.3帮助、出错、警告窗口的设计7、用户界面设计工具8、常见MATLABGUI举例王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版11MATLAB图形用户界面(GUI)介绍用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。图形用户界面(GraphicalUserInterfaces,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。MATLAB为表现其基本功能而设计的演示程序demo是使用图形界面的最好范例。MATLAB的用户,在指令窗中运行demo打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的内容。即便比较熟悉MATLAB的读者,在他初次编写GUI程序时,也会感到棘手。为使读者获得制作自己GUI的体验,本章“入门”节提供了一个简单的示例。读者只要输入所提供的程序,就可引出相应的界面。王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版2为什么创建图形界面GUI?在运行了demo例子后,很可能会问“为什么要在MATLAB中建立一个GUI?”这是一个很好的问题,简单的回答是可能并不需要.使用MATLAB来分析数据,求解问题,绘制结果的绝大多数的人,并不会发现GUI工具很有用。但另一方面,GUI可以在MATLAB中生成非常有效的工具和应用程序,或是建立演示工作的交互式界面。生成用户图形界面的最常见的理由:•编写一个需多次反复使用的实用函数,菜单、按钮、文本框作为输入方法具有意义;•编写函数或开发应用程序供别人使用;•创建一个过程、技术或分析方法的交互式示例;•认为GUI的简洁,性能良好,并且想自己实践一下。入门例子:加法计算器(后面详细讲解制作过程)分别用MATLABGUI和Delphi制作了两个数加法的简单应用程序。图一是用Delphi制作的,图二是用MATLABGUI制作的。明显可见用GUI制作的加法器可以进行向量加法,而且可以直接应用内部函数,如sin(x),abs(x)等等,另外还可以进行复数运算。这些都比Delphi制作的加法器优越。王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版3M文件代码:(add.m)clfresetset(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='加法计算器withMATALB';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+z2ht1=uicontrol(gcf,'style','push',...'string','加法运算',...'position',[0.17,0.345,0.2,0.2],...'callback','set(hedit3,''string'',num2str(z1+z2))');gcf----------getcurrentfiguregcbo----------gethandletocurrentcallbackobjectgca-----------gethandletocurrentaxis王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版42图形用户界面中的图形对象的树结构层次关系图(Tree-structuredhierarchy)GUI对象层次结构正如我们在上一章所展示的那样,由图形命令生成的每一事物是一个图形对象。图形对象不仅包括uimenu和uicontrol对象,而且还包括图形、坐标轴和他们的子对象。从另一个角度来看这一层次结构。计算机的屏幕本身是根结点,图形是根对象的子对象,坐标轴,uimenu,uicontrol是图形的子对象。根可以包括多个图形,每个图形含有一组或多组坐标轴以及其子对象,每个图形也可以有一个或多个与坐标轴无关的uimenu和uicontrol。虽然uicontrol对象无子对象结点,但他们确实具有多种类型。uimenu对象常将其它的uimenu对象作为其子对象。根计算机屏幕图图UimenuUicontrol型式:按钮键无线按钮键检查框滑标弹出式菜单框架文本编辑uimenuuimenu座标轴父子兄弟图1GUI对象层次结构图注意:运行MATLAB的不同型号的计算机或平台上,产生不同的图形显示。Unix工作站使用不同的XWindow系统,具有几个窗口程序,如mwn或twm以控制显示的布局。PC机靠MicrosoftWindows或WindowsNT进行窗口管理,Macintosh计算机用Macintosh工具箱程序作窗口。虽然在各种平台上,显示看起来有很大的不同,但在很多的情况下,句柄图形的编码是一致的。体现句柄图形例程的函数,包括应用uimenu和uicontrol对象的函数,通常运行在所有平台。王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版53图形用户界面的设计原则和一般步骤3.1设计原则由于要求不同,设计出来的界面也千差万别。但是,自从人们开始设计图形界面以后,界面设计的评判标准却没有太大的变化。简单说来,一个好的界面应遵循以下三个原则:简单性(Simplicity)、一致性(Consistency)及习常性(Familiarity)。(1)简单性设计界面时,应力求简洁、直接、清晰地体现出界面的功能和特征。那些可有可无的功能,应尽量删去,以保持界面的整洁。设计的图形界面要直观,为此应多采用图形,而间量避免数值。设计界面应间量减少窗口数目,力避在不同窗口之间进行来回切换。(2)一致性所谓一致性有两层含义:一是读者自己开发的界面风格要尽量一致;二是新设计的界面要与其他已有的界面的风格不要截然向左。这是因为用户在初次使用新界面时,总习惯于凭借经验进行试探。比如说,图形显示区常安排在界面的左半边,而按键等控制区被排在右侧。(3)习常性设计界面时,应尽量使用人们所熟悉的标志与符号。用户可能并不了解新界面的具体含义及操作方法,但他完全可以根据熟悉标志作出正确猜测,自学入门。(4)其他考虑因素除了以上对界面的静态要求外,还应注意界面的动态性能。如界面对用户操作的响应要迅速(Immediate)、连续(Continous);对持续时间较长的运算,要给出等待时间提示,并允许用户中断运算。3.2一般制作步骤界面制作包括界面设计和程序实现。具体制作步骤如下:(1)分析界面所要求实现的主要功能,明确设计任务;(2)在稿纸上绘出界面草图,并站在使用者的角度来审查草图;(3)按构思的草图,上机制作静态界面,并检查之;(4)编写界面动态功能的程序,对功能进行逐项检查。王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版64图形窗口的建立与控制4.1图形窗口的创建窗口句柄=figure(属性名1,属性值1,属性名2,属性值2,。。。)属性二元对(Property-Name,Property-Value)所有对象都有一组定义和刻画其外貌与形状的属性,由两部分组成:属性名和属性值。在创建或修改属性的指令中总是成二元对出现。王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版74.2图形窗口的常用属性王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版8王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版9王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版10例如:hf=figure('menubar','none','numbertitle','off','color',[0,1,0],...'position',[100,100,400,300],'name','Hello,NUAA0805','resize','on',...'pointer','cross','windowbuttondownfcn','helpdlg(''Hello,你需要帮助吗'',''NUAA-帮助对话框'')');注意:Alt+PrtSc复制激活状态下的窗口图片,开始-程序-附件-画图-编辑-粘贴-另存为-*.gif/jpg/bmp图上图(如上图两个窗口)可以多次粘贴,重叠得到。4.3图形窗口的控制函数王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版11王正盛2008-10-20-MATLABGUI设计-专题讲稿-简单版125界面菜单的设计(uimenu)菜单在每一个窗口系统中使用菜单让用户选择命令和选项。通常在显示屏或窗口的顶部有一菜单条。移动鼠标指针到菜单标志上按下鼠标按键,顶层菜单就被选中,一列菜单项就从菜单标志拉下来。这种款式菜单就叫下拉式菜单。按下鼠标将指针移动至菜单项并松开鼠标,则完成菜单项的选择。MS-Windows和一些XWindow系统平台还提供另一种选择菜单的方法。在顶层菜单上按下并松开鼠标,或称单击鼠标,则打开下拉菜单。然后,移动鼠标指针至下拉菜单项再次单击鼠标,就选择菜单项。在下拉菜单中选择一项就引起动作的发生。一个菜单项还可用自己的菜单项列表而作为子菜单。子菜单项在子菜单的标志右边显示小三角或箭头以表示菜单还有更多子菜单项可供选择。如果子菜单的菜单项被选择,另一个具有更多菜单项的菜单显示在此菜单的右边的下拉菜单中。有时这种菜单称之行走菜单

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功