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

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

举报
开通vip

MATLAB_GUI设计-专题讲稿-王正盛 MATLAB GUI(Graphical User Interfaces- 图形用户界面)设计与制作 专题讲稿-简单版 王正盛 编写 2008-10-20 (南京航空航天大学理学院数学系,南京 210016) 目录: 1、 MATLAB 图形用户界面(GUI)介绍 2、 图形用户界面中的图形对象的树结构层次关系图(Tree-structured hierarchy) ...

MATLAB_GUI设计-专题讲稿-王正盛
MATLAB GUI(Graphical User Interfaces- 图形用户界面) 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与制作 专 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 讲稿-简单版 王正盛 编写 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)介绍 用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。 如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。 图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、 菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如 鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实 现计算、绘图等。 假如读者所从事的数据 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 、解方程、计算结果可视工作比较单一,那么 一般不会考虑 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对象 作为其子对象。 根 计算机屏幕 图图 Uimenu Uicontrol 型式: 按钮键 无线按钮键 检查框 滑标 弹出式菜单 框架 文本 编辑 uimenu uimenu 座标轴 父 子 兄 弟 图1 GUI对象层次结构图 注意:运行 MATLAB 的不同型号的计算机或平台上,产生不同的图形显示。Unix 工作站使用不同的 X Window 系统,具有几个窗口程序,如 mwn 或 twm 以控制 显示的布局。 PC 机靠 Microsoft Windows 或 Windows NT 进行窗口管理, Macintosh 计算机用 Macintosh 工具箱程序作窗口。虽然在各种平台上,显示看 起来有很大的不同,但在很多的情况下,句柄图形的编码是一致的。体现句柄图 形例程的函数,包括应用 uimenu 和 uicontrol 对象的函数,通常运行在所有平台。 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 5 3 图形用户界面的设计原则和一般步骤 3.1 设计原则 由于要求不同,设计出来的界面也千差万别。但是,自从人们开始设计图形 界面以后,界面设计的评判 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 却没有太大的变化。简单说来,一个好的界面应 遵循以下三个原则:简单性(Simplicity)、一致性(Consistency)及习常性 (Familiarity)。 (1)简单性 设计界面时,应力求简洁、直接、清晰地体现出界面的功能和特征。那些可有可 无的功能,应尽量删去,以保持界面的整洁。设计的图形界面要直观,为此应多 采用图形,而间量避免数值。设计界面应间量减少窗口数目,力避在不同窗口之 间进行来回切换。 (2)一致性 所谓一致性有两层含义:一是读者自己开发的界面风格要尽量一致;二是新 设计的界面要与其他已有的界面的风格不要截然向左。这是因为用户在初次使用 新界面时,总习惯于凭借经验进行试探。比如说,图形显示区常安排在界面的左 半边,而按键等控制区被排在右侧。 (3)习常性 设计界面时,应尽量使用人们所熟悉的标志与符号。用户可能并不了解新界 面的具体含义及操作方法,但他完全可以根据熟悉标志作出正确猜测,自学入门。 (4)其他考虑因素 除了以上对界面的静态要求外,还应注意界面的动态性能。如界面对用户操 作的响应要迅速(Immediate)、连续(Continous);对持续时间较长的运算,要给 出等待时间提示,并允许用户中断运算。 3.2 一般制作步骤 界面制作包括界面设计和程序实现。具体制作步骤如下: (1)分析界面所要求实现的主要功能,明确设计任务; (2)在稿纸上绘出界面草图,并站在使用者的角度来审查草图; (3)按构思的草图,上机制作静态界面,并检查之; (4)编写界面动态功能的程序,对功能进行逐项检查。 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 6 4 图形窗口的建立与控制 4.1 图形窗口的创建 窗口句柄=figure(属性名 1,属性值 1,属性名 2,属性值 2,。。。) 属性二元对(Property-Name,Property-Value) 所有对象都有一组定义和刻画其外貌与形状的属性,由两部分组成:属性名和属 性值。在创建或修改属性的指令中总是成二元对出现。 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 7 4.2 图形窗口的常用属性 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 8 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 9 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 10 例如: hf=figure('menubar','none','numbertitle','off','color',[0,1,0],... 'position',[100,100,400,300],'name','Hello,NUAA 0805','resize','on',... 'pointer','cross','windowbuttondownfcn','helpdlg(''Hello , 你 需 要 帮 助 吗 '',''NUAA-帮助对话框'')'); 注意: Alt + PrtSc 复制激活状态下的窗口图片,开始-程序-附件-画图-编辑 -粘贴-另存为- *.gif/jpg/bmp 图上图(如上图两个窗口)可以多次粘贴,重叠得到。 4.3 图形窗口的控制函数 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 11 Administrator Highlight 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 12 Administrator Pencil Administrator Pencil 5 界面菜单的设计(uimenu) 菜单 在每一个窗口系统中使用菜单让用户选择命令和选项。通常在显示屏或窗口的顶部有一 菜单条。移动鼠标指针到菜单标志上按下鼠标按键,顶层菜单就被选中,一列菜单项就从菜 单标志拉下来。这种款式菜单就叫下拉式菜单。按下鼠标将指针移动至菜单项并松开鼠标, 则完成菜单项的选择。MS-Windows 和一些X Window系统平台还提供另一种选择菜单的方 法。在顶层菜单上按下并松开鼠标,或称单击鼠标,则打开下拉菜单。然后,移动鼠标指针 至下拉菜单项再次单击鼠标,就选择菜单项。在下拉菜单中选择一项就引起动作的发生。 一个菜单项还可用自己的菜单项列表而作为子菜单。子菜单项在子菜单的标志右边显示 小三角或箭头以表示菜单还有更多子菜单项可供选择。如果子菜单的菜单项被选择,另一个 具有更多菜单项的菜单显示在此菜单的右边的下拉菜单中。有时这种菜单称之行走菜单。选 中其中一个菜单项也引起某些动作的产生。 子菜单可以嵌套,但层次的数目受到窗口系统及有用资源的限制。 5.1 用户菜单的创建 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 13 uimenu对象中最重要的属性是' Label ' 和 ' Callback ' 。 ' Label ' 属 性值是菜单条和下拉菜单项上的文本字符串,以确认菜单项。 ' Callback ' 属 性值是MATLAB字符串,当选中菜单项时,它传给eval,用以执行。 5.2 菜单对象的常用属性 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 14 Administrator Highlight Administrator Pencil Administrator Pencil Administrator Pencil 例如: hf=figure; h=uimenu(hf,'label','&Color'); h1=uimenu(gcf,'label','About author'); h_1=uimenu(h,'label','&Blue','callback','set(gcf,''color'',''blue'')','enable','off'); h_2=uimenu(h,'label','&Red','callback','set(gcf,''color'',''red'')','separator','on'); h_3=uimenu(h,'label','&green') h_3_1=uimenu(h_3,'label','&Green','callback','set(gcf,''color'',''green'')','separator','on'); h_3_2=uimenu(h_3,'label','&Black','callback','set(gcf,''color'',''black'')','separator','on'); h1_1=uimenu(h1,'label','&Blue','callback','set(gcf,''color'',''blue'')'); h1_2=uimenu(h1,'label','&Red','callback','set(gcf,''color'',''red'')'); 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 15 Administrator Highlight set函数定义的时候属性名和属性值都是单引号,在这个地方时双引号,是因为set函数在单引号中吗?用单引号会出现错误,双引号就正确。 展示: ex1.m hh=figure('Name','0805101-0805103'); %set(gcf,'MenuBar','none') set(hh,'MenuBar','none','NumberTitle','off') hm1=uimenu(hh,'Label','文件') hm1_1=uimenu(hm1,'Label','&New','Callback','edit') hm1_2=uimenu(hm1,'Label','&Open','Callback','uigetfile') hm1_3=uimenu(hm1,'Label','&Save','Callback','') hm1_3_1=uimenu(hm1_3,'Label','Save as M flie','Callback','edit') hm1_3_2=uimenu(hm1_3,'Label','Save as MAT file','Callback','') hm1_3_3=uimenu(hm1_3,'Label','Save as HTML fie','Callback','close') hm1_3=uimenu(hm1,'Label','退出','Callback','close') hm2=uimenu(hh,'Label','&View') hm3=uimenu(hh,'Label','颜色') hm3_1=uimenu(hm3,'Label','&Red','Callback','set(gcf,''Color'',''red'')') hm3_2=uimenu(hm3,'Label','&Blue','Callback','set(hh,''Color'',''blue'')') hm3_3=uimenu(hm3,'Label','&Black','Callback','set(hh,''Color'',[0 0 0])') hm4=uimenu(hh,'Label','帮助&H') hm4_1=uimenu(hm4,'Label','Online','Callback','edit') hm4_2=uimenu(hm4,'Label','Author','Callback','') hm4_3=uimenu(hm4,'Label','About','Callback','close') ex2.m t=(-3*pi:pi/50:3*pi)+eps; y=sin(t)./t; hline=plot(t,y); %绘制 Sa 曲线 cm=uicontextmenu; %创建现场菜单 %制作具体菜单项,定义相应的回调 uimenu(cm,'label','Red','callback','set(hline,''color'',''r''),') uimenu(cm,'label','Blue','callback','set(hline,''color'',''b''),') uimenu(cm,'label','Green','callback','set(hline,''color'',''g''),') set(hline,'uicontextmenu',cm) %使 cm 现场菜单与 Sa 曲线相联系 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 16 Administrator Circle 未试 6 界面用户控件的设计(uicontrol) 控件 在各计算机平台上,窗口系统都采用控制框和菜单,让用户进行某些操作,或设置选项 或属性。控制框是图形对象,如图标、文本框和滚动条,它和菜单一起使用以建立用户图形 界面,称之为窗口系统和计算机窗口管理器。 MATLAB控制框,又称uicontrol,与窗口管理器所用的函数十分相似。它们是图形对象, 可以放置在MATLAB的图形窗中的任何位置并用鼠标激活。MATLAB的 uicontrol包括按 钮、滑标、文本框及 弹出式菜单。 由MATLAB生成的uicontrol对象在Macintosh、MS-Windows 和X Window系统平台上, 有稍微不同的外观,因为窗口系统表达图形对象的方法是不同的。但是,功能本质是相同的, 所以相同的MATLAB编码将生成同样的对象,它在不同平台完成同样的功能。 Uicontrol由函数uicontrol生成。常用句法与前面所讨论的uimenu相同。 用户控制的句柄=uicontrol(父辈对象句柄,‘属性名’,‘属性值’,‘属性 名’,‘属性值’,。。。) >>Hc_1=uicontrol(Hf_fig, ' PropertyName ' ,PropertyValue,... ) 其中,Hc_1是由函数uicontrol生成uicontrol对象的句柄。通过设定uicontrol 对象的属性值' PropertyName' , ' PropertyValue ' 定义了uicontrol的属性; Hf_fig是父对象的句柄,它必须是图形。如果图形对象句柄省略,就用当前的图 形。 6.1 控件种类与控件制作函数 z 建立不同类型的控件 MATLAB共有八种不同类型或型式的控件。它们均用函数uicontrol建立。属性 ' Style ' 决定了所建控制框的类型。 ' Callback ' 属性值是当控件激活时,传给eval在命令窗 口空间执行的MATLAB字符串。 下面将分别对八种uicontrol对象进行讨论,并用示例说明。uicontrol对象的属性更 为透彻的讨论和应用中更为完整的例子将在以后给出。 (1)按钮键 按钮键,又称命令按钮或只叫按钮,是小的长方形屏幕对象,常常在对象本身标有文本。 将鼠标指针移动至对象,来选择按钮键uicontrol,单击鼠标按钮,执行由回调字符串所定义 的动作。按钮键的 ' Style ' 属性值是 ' pushbutton ' 。 例如: >>Hc_close=uicontrol(gcff, ' Style ' , ' push ' ,... ' Position ' ,[10 10 100 25],... ' String ' ,'Close ' ,... ' CallBack ' , ' close); 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 17 (2)静态文本框 静态文本框是仅仅显示一个文本字符串的uicontrol,该字符串是由 ' string ' 属性所确 定的。静态文本框的 ' Style ' 属性值是 ' text ' 。静态文本框典型地用于显示标志、用户信 息及当前值。 静态文本框之所以称之为 ' 静态 ' ,是因为用户不能动态地修改所显示的文本。文本 只能通过改变 ' String ' 属性来更改。 在X Window系统中,静态文本框可只含有一行文字;如文本框太短,不能容纳文本串, 则只显示部分文字。 下面的例子建立了含有MATLAB版本号的文本框。 >> Hc_ver = uimenu(gcf, ' Style ' , ' text ' ,... ' Position ' ,[10 10 150 20],... ' String ' ,[ ' MATLAB Version ' ,version]); (3)无线按钮 无线按钮,又称选择按钮或切换按钮,它由一个标志并和标志文本的左端一个小圆圈或 小菱形所形成。当选择时,圆圈或菱形被填充,且 ' Value ' 属性值设为1;若未被选择, 指示符被清除, ' Value ' 属性值设为0。无线按钮键 ' style ' 的属性值是 ' radiobutton ' 。 无线按钮典型地用在一组互斥的选项中选择一项。为了确保互斥性,各无线按钮 uicontrol的回调字符串必须不选组中其它项,将它们各项的 ' Value ' 设为0。然而,这 只是一个约定,如果需要,无线按钮可与检查框交换使用。 下面的例子建立了两个互斥选项的无线按钮,它将坐标轴 ' Box ' 属性开或关闭。 >> Hc_boxon = uicontrol(gcf, ' Style ' , ' radio ' ,... ' Position ' ,[20 45 100 20],... ' String ' , ' Set box on ' Value ' ,0,... ' ,... ' CallBack ' ,[... ' set(Hc_boxon ' ,''Value'',1 ' ... ' set(Hc_boxoff ' ,''Value'',0 ' ... ' set(gca,''Box'',''on'') ' ]); >> Hc_boxoff = uicontrol(gcf, ' Style ' , ' radio ' ,... ' Position ' ,[20 20 100 20],... ' String ' , ' Set box off ' Value ' ,1,... ' ,... ' CallBack ' CallBack ' ,[... ' set(Hc_boxon ' ,''Value'',0 ' ... ' set(Hc_boxoff ' ,''Value'',1 ' ... ' set(gca,''Box'',''off'') ' ]); (4)检查框 检查框,又称切换按钮,它由具有标志并在标志的左边的一个小方框所组成。激活时, uicontrol在检查和清除状态之间切换。在检查状态时,根据平台的不同,方框被填充,或 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 18 在框内含x, ' Value ' 属性值设为1。若为清除状态,则方框变空, ' Value ' 属性值 设为0。 检查框典型地用于表明选项的状态或属性。通常检查框是独立的对象,如果需要,检查 框可与无线按钮交换使用。 下面的例子建立了一个检查框uicontrol, 设置坐标轴 ' Box ' 属性,当此检查框被 激活时,测试 ' Value ' 属性以确定检查框是否以往被检查或清除过,并适当设置 ' Box ' 属性。 >> Hc_box = uicontrol(gcf, ' Style ' , ' check ' ,... ' Position ' ,[100 50 100 20],... ' String ' , ' Axis Box ' ,... ' CallBack ' ,[... ' if get(Hc_box,''Value'')==1, ' ... ' set(gca,''Box'',''on''), ' ... ' else, ' ... ' (gca,''Box'',''off'', ' ... ' end ' ]); (5)可编辑文本框 编辑文本框,象静态文本框一样,在屏幕上显示字符。但与静态文本框不同,可编辑文 本框允许用户动态地编辑或重新安排文本串,就象使用文本编辑器或文字处理器一样。在 ' String ' 属性中有该信息。可编辑文本框uicontrol的 ' Style ' 属性值是 ' edit ' 。可编辑文本 框典型地用在让用户输入文本串或特定值。 可编辑文本框可包含一行或多行文本。单行可编辑文本框只接受一行输入,而多行可编 辑文本框可接受行以上的输入。单行可编辑文本框的输入以Return键结尾。在X window和 MS-Window 系统中,多行文本输入以 Control-Return 键结尾,而在 Macintosh 中用 Command-Return键。 下面的例子建立了静态文本标志和一个单行可编辑文本框。用户可以在文本框中输入颜 色映象名,而后回调字符串把它放到在图中。 >>Hc_label=uicontrol(gcf, ' Style ' , ' text ' ,... ' Position ' [10 10 70 20],... ' String ' , ' Colormap: ' ); >>Hc_map =uicontrol(gcf, ' Style ' , ' edit ' ,... ' Position ' [80 10 60 20],... ' String ' , ' hsv ' ,... ' callback ' , ' coloormap(eval(get(Hc_map,''String''))) ' ); 注意:通过把 ' Max ' 属性及 ' Min ' 属性设置成数值,诸如Max-Min>1,建立多行可编 辑文本框。Max属性不指定最大的行数。多行可编辑文本框可具有无限多行。 一个多行可编辑文本框表示如下: >>Hc_multi=uicontrol(gcf, ' Style ' , ' edit ' ,... ' Position ' ,[20 50 75 75],... ' String ' , ' Line 1 |Line 2|Line 3 ' ... ' Max ' ,2); 多行字符串被指定为单个引号的字符串,用垂直条字符 ' | ' 指明在何处分行。 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 19 (6)滑标 滑标,或称滚动条,包括三个独立的部分,分别是滚动槽、或长方条区域,代表有效对 象值范围;滚动槽内的指示器,代表滑标当前值;以及在槽的两端的箭头。滑标uicontrol 的 ' Style ' 属性值是 ' slider ' 。 滑标典型地用于从几个值域范围中选定一个。滑标值有三种方式设定。方法一:鼠标指 针指向指示器,移动指示器。拖动鼠标时,要按住鼠标按钮,当指示器位于期望位置后松开 鼠标。方法二:当指针处于槽中但在指示器的一侧时,单击鼠标按钮,指示器按该侧方向移 动距离约等于整个值域范围的10% ;方法三:在滑标不论哪端单击鼠标箭头;指示器沿着 箭头的方向移动大约为滑标范围的1% 。滑标通常与所用文本uicontrol对象一起显示标志、 当前滑标值及值域范围。 下面的例子实现了一个滑标,可以用于设置视点方位角。用了三个文本框分别指示滑标 的最大值,最小值和当前值。 >> vw = get(gca, ' View ' ); >> Hc_az = uicontrol(gcf, ' Style ' , ' slider ' ,... ' Position ' [10 5 140 20],... ' Min ' ,-90, ' Max ' ,90, ' Value ' ,vw(1) ' ,... ' CallBack ' ,[... ' set(Hc_cur,''String'',num22str(get(Hc_az,''Value''))), ' ... ' set(gca,''View'',[get(Hc_az,''Value'') vw(2)]) ' ]); >> Hc_min = uicontrol(gcf, ' Style ' , ' text ' ,... ' Position ' ,[10 25 40 20],... ' String ' ,num2str(get(Hc_az, ' Min ' ))); num2str(get(Hc_az, ' Min ' ))); >> Hc_max = uicontrol(gcf, ' Style ' , ' text ' ,... ' Position ' ,[110 25 40 20],... ' String ' ,num2str(get(Hc_az, ' Max)); >> Hc_cur = uicontrol(gcf, ' Style ' , ' text ' ,... ' Position ' ,[60 25 40 20],... ' String ' num2str(get(Hc_az, ' Value ' ))); 滑标的 ' Position ' 属性包含熟悉的向量[left bottom width height],其单位由 ' Units ' 属性设定。滑标的方向取决于宽与高之比。如果width > height就画水平方向的滑标,如果 width < height就画垂直方向的滑标。仅在X-Window系统平台中,如果滑标的一个方向的大 小比另一个方向小4倍,就不显示。其它操作平台上的滑标均有箭头。 (7)弹出式菜单 弹出式菜单典型地用于向用户提出互斥的一系列选项清单,让用户可以选择。弹出式菜 单,不同于前面论述过的下拉式菜单,不受菜单条的限制。弹出式菜单可位于图形窗口内的 任何位置。弹出式菜单的 'Style' 属性值是 ' popupmenu ' 。 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 20 当关闭时,弹出式菜单以矩形或按钮的形式出现,按钮上含有当前选择的标志,在标志 右侧有一个向下的箭头或凸起的小方块来表明uicontrol对象是一个弹出式菜单。当指针处在 弹出式uicontrol之上并按下鼠标时,出现其它选项。移动指针到不同的选项,松开鼠标就关 闭弹出式菜单,显示新的选项。MS-Windows 和某些X Window系统平台允许用户单击弹出 式菜单,打开它,而后单击另一个选项来进行选择。 当选择一个弹出项时, ' Value ' 属性值设置成选择向量所选元素的下标。选项的标志 指定为一个字符串,用垂直条 ' | ' 分隔,与指定多行文本的方法一样。下面的例子 (mmct17.m)建立了图形颜色的弹出式菜单。回调函数把图形的 ' Color ' 属性值设定为所 选值。每种与颜色相关的RGB值存储在弹出控制框的 ' UserDate ' 属性中。所有句柄图形对象的 ' UserData ' 属性仅仅为单独矩阵提供孤立的存 储。 >> Hc_fcolor = uicontrol(gcf, ' Style ' , ' popumenu ' ,... ' Position ' ,[20 20 80 20],... ' String ' , ' Black|Red|Yellow|Green|Cyan|Blue|Magenta|White ' ,... ' Value ' ,1,... UserData ' ,[[0 0 0];... [1 0 0];... [1 1 0];... [0 1 0];... [0 1 1];... [0 0 1];... [1 0 1];... [1 1 1];... CallBack ' ,[... ' UD=get(Hc_fcolor, ' ' UserData ' ' ); ' ,... ' set(gcf, ' ' Color ' ' ,UD(get(Hc_fcolor, ' ' Value ' ' ),:)) ' ]); 弹出式菜单的 ' Position ' 属性含有熟悉的向量[left bottom width height],其中宽度与高度 决定了弹出对象的大小。在X Window和Macintosh系统中,就是被关闭的弹出式菜单的大小。 打开时,菜单展开适合显示屏幕大小所有的选项。在MS-Windows系统中,高度值基本上被 忽略,这些平台建立高度足够的弹出式菜单,显示一行文本而不管height的值。 (8)框架 框架uicontrol对象仅是带色彩的矩形区域。框架提供了视觉的分隔性。在这点上,框架 与uimenu的 ' Sepatator ' 属性相似。框架典型地用于组成无线按钮或其它uicontrol对象。 在其它对象放入框架之前,框架应事先定义。否则,框架可能覆盖控制框使它们不可见。 下面的例子(mmct18.m)建立了一个框架,把两个按钮和一个标志放入其中。 >> Hc_frame = uicontrol(gcf,' Style ', ' frame ' , ' Position ' ,[250 200 95 65]); >> Hc_pb1 = uicontrol(gcf, ' Style ' , ' pudhbutton ' ,... ' Position ' ,[255 205 40 40], ' String ' , ' OK ' ); >> Hc_pb2 = uicontrol(gcf, ' Style ' , ' pushbutton ' ,... 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 21 ' Position ' ,[300 205 40 40], ' String ' , ' NOT ' ); >> Hc_1b1 = uicontrol(gcf, ' Style ' , ' text ' ,... ' Position ' ,[255 250 85 10], ' Str ' , ' Push Me ' ); z 控件属性 如句柄图形对象建立函数一样,uicontrol属性可在对象建立时定义,或如上所示,用set 命令来改变。所有可设定的属性,包括字符串文本、回调串、甚至控制框函数类型都可以用 set来改变。本章后面有若干例子。 表2列出了MATLAB 4.2版本中uicontrol对象的属性及其值。带有*的属性为非文件式的, 使用时需加小心。由{}括起来的属性值是缺省值。 表.2 Uicontrol 对象属性 BackgroundColor uicontrol背景色。3元素的RGB向量或MATLAB一个预 先定义的颜色名称。缺省的背景色是浅灰色。 Callback MATLAB回调串,当uicontrol激活时,回调串传给函 数eval;初始值为空矩阵。 ForegroundColor uicontrol前景(文本)色。3元素的RGB向量或MATLAB 一个预先定义的颜色名称。缺省的文本色是黑色。 HorizontalAlignment left: {center}: right: 标志串的水平排列 相对于uicontrol文本左对齐 相对于uicontrol文本居中 相对于uicontrol文本右对齐 Max 属性 ' Value ' 的最大许可值。最大值取决于uicontrol 的 ' Type ' 当uicontrol处于on状态时,无线按钮及检 查框将Value设定为Max;该值定义了弹出式菜单最小 下标值或滑标的最大值。当Max-Min>1时,可编辑文 本框是多行文本。缺省值为1 Min 属性 ' Value ' 的最小许可值。最小值取决于uicontrol 的 ' Type ' uicontrol处于off状态时。无线按钮及检 查框将Value设定为Min;该值定义了弹出式菜单最小 下标值或滑标的最小值。当Max-Min>1时,可编辑文 本框是多行文本。缺省值为0 Position 位置向量[left bottom width height]。其中,[left height] 表示相对于图形对象左下角的uicontrol的左下角位 置。[widht height]表示uicontrol的尺寸大小,其单位 由属性Units确定。 Enable* {on}: off: 控制框使能状态 uicontrol使能。激活uicontrol,将Callback字符串传给 eval unicntrol不使能,标志串模糊不清。激活unicontrol 不起作用 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 22 String 文本字符串,在按钮键,无线按钮,检查框和弹出式 菜单上指定uicontrol的标志。对于可编辑文本框,该 属性设置成由用户输入的字符串。对弹出式菜单或可 编辑文本框中多个选项或,每一项用垂直条(|)分隔, 整个字符串用引号括起来。框架和滑标,不用引号 Style {pushbutton}: radiobutton: checkbox: edit: text: slider: frame: popumenu: 定义uicontrol对象的类型 按钮键:选择时执行一个动作。 无线按钮键:单独使用时,在两个状态之间切换;成 组使用时,让用户选择一个选项 检查框:单独使用时,在两个状态之间切换;成组使 用时,让用户选择一个选项 可编辑框:显示一个字符串并可让用户改变 静态文本框:显示一个字符串 滑标:让用户在值域范围内选择一个值。 框架:显示包围一个或几个uicontrol的框架,使其形 成一个逻辑群。 弹出式菜单 :含有许多互斥的选择的弹出式菜单 Units inches: centimeters: normalized: points: {pixels}: 位置属性值的单位 英寸 厘米 归一化的坐标值,图形的左下角映射为[0 0]而右上 角的映射为为[1 1] 打印设置点,等于1/72 英寸 屏幕的象素。计算机屏幕分辨率的最小单位。 Value uicontrol的当前值。无线按钮和检查框在 ' on ' 状态 时,value设为Max,当是 ' off ' 状态时,value设为 Min。由滑标将滑标的value设置为数值(Min≤Value ≤Max),弹出式菜单把value值设置所选择选项的下 标(1≤Value≤Max)。文本对象和按钮不设置该属性。 ButtonDownFcn 当uicontrol被选择时,MATLAB回调串传给函数eval。 初始值为空矩阵 Children Uicontrol对象一般无子对象,通常返回空矩阵 Clipping {on}: off: 限幅模式 对uicontrol对象无作用效果 对uicontrol对象无作用效果 DestroyFcn 只对Macintosh 4.2 版本。没有文件说明 Interrruptible {on}: off: 指定ButtonDownFcn和CallBack串是否可中断 回调不能由其它回调中断 回调串可被中断 Parent 包含uicontrol对象的图形句柄 *Select 值为[on|off] *Tag 文本串 Type 只读对象辩识串,通常为uicontrol UserData 用户指定的数据。可以是矩阵,字符串等等 王正盛 2008-10-20-MATLAB GUI 设计-专题讲稿-简单版 23 Visible {on}: off: uicontrol对象的可视性 uicontrol对象在屏幕上可见
本文档为【MATLAB_GUI设计-专题讲稿-王正盛】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_577089
暂无简介~
格式:pdf
大小:741KB
软件:PDF阅读器
页数:33
分类:互联网
上传时间:2012-03-28
浏览量:14