MATLAB图形界面制作GUI与句柄图形

合集下载

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

(1)利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面;(2) 实现在“符号计算”图形用户界面中的各项符号计算功能,如实现Matlab的求极限、求导、求不定积分与定积分、级数求和、方程组的符号求解、常微分方程的符号求解等符号计算;(3) 利用Matlab的二维、三维绘图功能,实现图形用户界面(GUI)中的部分符号计算的可视化,即给出符号计算实例的同时实现该实例的图形化描述。

如下图给出了一个简单的GUI界面,学生可以参考如下图设计出自己的GUI界面。

程序如下:hf=figure('Position',[200,200,700,500],...'Name','信计08(2)班阿卜杜热黑木20080803417', ...'NumberTitle','off','MenuBar','none');uicontrol(hf,'Style','Frame','Position',[0,0.15,0.45,1],...'Units','normalized','Back',[0,1,1]);COMM1=['n=str2num(get(he1,''String''));', ...%求导连接'b=sym(get(he7,''String''));',...'dec=diff(b,n);', ...'set(he8,''string'',char(dec));'];COMM2=['a=str2num(get(he2,''String''));', ...%求极限连接'f=sym(get(he7,''String''));',...'lim=limit(f,a);', ...'set(he8,''string'',char(lim));'];COMM3=['g=sym(get(he7,''String''));',... %不定积分连接'int_1=int(g);', ...'set(he8,''string'',char(int_1));'];COMM4=['a=str2num(get(he3,''String''));', ... %级数求和连接'b=str2num(get(he5,''String''));', ...'f=sym(get(he7,''String''));',...'sum_1=symsum(f,a,b);', ...'set(he8,''string'',char(sum_1));'];COMM5=['a=str2num(get(he4,''String''));', ... %定积分连接'b=str2num(get(he6,''String''));', ...'f=sym(get(he7,''String''));',...'int_2=int(f,a,b);', ...'set(he8,''string'',char(int_2));'];COMM6=['f=get(he7,''String'');',...'dsolve_1=dsolve(f,''x'');', ...'set(he8,''string'',char(dsolve_1));'];COMM7=['f=get(he7,''String'');',...'ezplot(f);'];COMM8=['g=get(he8,''String'');',...'ezplot(g);'];uicontrol(hf,'Style','Push','Position',[0.02,0.9,0.11,0.06],...'String','求导','Units','normalized','Call',COMM1); uicontrol(hf,'Style','Text','Position',[0.17,0.85,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','阶数','Back',[0,1,1]);he1=uicontrol(hf,'Style','Edit','Position',[0.25,0.9,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.72,0.13,0.06],...'String','求极限','Units','normalized','Call',COMM2);uicontrol(hf,'Style','Text','Position',[0.17,0.67,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','极限点','Back',[0,1,1]);he2=uicontrol(hf,'Style','Edit','Position',[0.25,0.72,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.58,0.13,0.06],...'String','不定积分','Units','normalized','Call',COMM3);uicontrol(hf,'Style','Push','Position',[0.02,0.45,0.13,0.06],...'String','级数求和','Units','normalized','Call',COMM4);uicontrol(hf,'Style','Text','Position',[0.31,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he5=uicontrol(hf,'Style','Edit','Position',[0.38,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he3=uicontrol(hf,'Style','Edit','Position',[0.24,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.32,0.13,0.06],...'String','求定积分','Units','normalized','Call',COMM5);uicontrol(hf,'Style','Text','Position',[0.31,0.31,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he6=uicontrol(hf,'Style','Edit','Position',[0.38,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.3,0.08,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he4=uicontrol(hf,'Style','Edit','Position',[0.24,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.2,0.16,0.06],...'String','解微分方程','Units','normalized','Call',COMM6);uicontrol(hf,'Style','text','Position',[0.48,0.9,0.13,0.06],...'String','原函数','Units','normalized');he7=uicontrol(hf,'Style','edit','Position',[0.65,0.9,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','text','Position',[0.48,0.77,0.13,0.06],...'String','结果函数','Units','normalized');he8=uicontrol(hf,'Style','text','Position',[0.65,0.77,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);h_axes=axes('position',[0.55,0.2,0.4,0.5]);uicontrol(hf,'Style','push','Position',[0.58,0.02,0.13,0.06],...'String','初始绘图','Units','normalized','call',COMM7);uicontrol(hf,'Style','push','Position',[0.80,0.02,0.13,0.06],...'String','结果绘图','Units','normalized','call',COMM8);uicontrol(hf,'Style','Push','Position',[0.02,0.02,0.08,0.06],...'String','退出','Units','normalized','Call', 'close');。

实验六 MATLAB句柄绘图和GUI界面设计

实验六  MATLAB句柄绘图和GUI界面设计

西北农林科技大学实验报告学院名称:理学院专业年级:姓名:学号:课程:数学软件实验报告日期:2014年11月22日实验六MATLAB的句柄绘图与GUI界面设计一、实验目的MATLAB语言的句柄绘图可以对图形的各基本对象进行更为细腻的修饰,能产生更为复杂的图形,而且为动态图形的制作奠定了基础。

本次实验的目的是了解图形的基本结构,掌握图形对象之间的关系,熟悉图形对象属性的获取、设置与修改。

并能初步使用MATLAB 的GUI界面设计进行界面的设计,为将来进行软件开发打好基础。

二.实验要求MATLAB的底层图形修饰方法十分的丰富,通过本次实验,要求能体会句柄图形的概念,熟悉根屏幕、图形窗口、界面控制、界面菜单、轴、线、面、字、块、像等基本图形对象的创建和修改,熟练掌握基本图形对象的属性获取、设置与修改,会利用对象属性修改图形,会创建与修改界面控制与界面菜单。

能根据需要使用消息对话框、警告对话框、输入对话框、提示对话框、列表对话框、进度指示条等。

能初步设计出自己较为满意的GUI图形用户界面。

三.实验内容一、句柄图形的概念句柄图形(Handle Graphics):是一种面向对象的绘图系统。

该系统提供创建计算机图形所必须的各种软件。

它所支持的指令,可直接创建线、文字、网线、面以及图形用户界面。

在MATLAB中的图形系统中,所有的图形操作都是针对图形对象而言的,每个对象从创建时起就被赋予了唯一的标识,这种标识就是该图像的句柄。

1.图形对象MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。

系统将每一个对象按树型结构组织起来。

每个具体图形不必包含每个对象,但每个图形必须具备根屏幕和图形窗口。

2.图形对象句柄MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。

句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。

第五章 MATLAB里的GUI

第五章 MATLAB里的GUI

创建图形用户界面的方法——图形句柄和GUIDE 都需要使用M语言编程,但是技术的侧重点不同。 MATLAB提供了基本的用户界面元素:包括菜单、快捷菜 单、按钮、复选框、单选框、文本编辑框、静态文本、下
拉列表框、列表框等。
句柄(handle)与句柄操作

什么是句柄?
句柄是图形对象的标识代码(唯一的身份),标 识代码含有图形对象的各种必要的属性信息。 各图形对象的句柄数据格式: 根屏幕 图形窗口 其它对象 0 正整数,表示图形窗口序号 对应的双精度浮点数
在GUIDE的界面的工具栏上包含了一些常用的工具,如图。
菜单编辑器
属性察看器
激活工具
对齐工具
M 文件编辑器
对象察看器
GUIDE工具栏上的工具按钮
图形用户界面的例子
在该图形用户界面中包含如下控件:
* 两个推按钮(push button),分别完成绘制三维 曲面和改变色彩的功能;
* 五个静态文本框(static text),分别用来完成显 示不同信息的功能; * 一个滚动条(slide),用来完成改变三维曲面上 的分隔线色彩; * 一个坐标轴(axes),用来显示三维曲面;
选择已经存在的图形界面文件,该文件的扩展名为 fig。 打开一个存在的GUI界面文件: >> guide gui_filename 这时在GUIDE中将显示已经创建好的图形界面外 观。
选择空白界面类型,并单击“OK”按钮,这时
MATLAB将启动GUIDE的图形界面,如图所示。
具有空白界面的GUIDE图形界面
例:
get(0,'DefaultFigureColor') —— 获得图形 窗口的省缺值 set(h,'DefaultLineColor','r') ——设置线的 颜色为红色 例:在图上添加文字注释,颜色为红色 set(gca,'DefaultTextColor',[1 0 0]) gtext('正弦') gtext('余弦') %鼠标取点 在轴对象上设置字对象的颜色省缺值为红色 继承该省缺值在图上添加红色的文字注释

MATLAB GUI程序设计

MATLAB GUI程序设计

按钮控件
图形窗口
坐标轴
句柄( 句柄(Handle)—图形对象的标志 ) 图形对象的标志
句柄就是某个图形对象的记号, 句柄就是某个图形对象的记号,matlab给每 给每 个图形对象都指定一个handle,由句柄唯一 个图形对象都指定一个 , 地标值要操作的图形对象( 地标值要操作的图形对象(类似电话区号和 号码)。 号码)。 对于root对象,matlab规定它的句柄是屏幕, 句柄值为0
Root(屏幕)
Figure(图)
Uicontrol( 界 面 控 制項)
Axes(轴)
Uimenu( 界 面 选 单)
Line (线条)
Surface (表面)
Rectangle (矩形)
Patch (貼片)
Image (图像)
Text (文字)
Light (光源)
图形体系
文字控件 界面表单
弹出表单 控件 曲线
创建GUI 创建
基本步骤: 基本步骤: 1. 设计 图形用户界面 2. 用GUIDE 编辑界面 3. 编写回调函数 4. 保存,运行 保存,
GUI编辑界面 编辑界面 对齐
菜单 工具栏 M文件编辑 文件编辑
控 件
{
属性
运行
基本控件Basic Controls: 基本控件 :
axes: 坐标轴 static text: 静态文 本,用户不可编辑 edit box: 文本框, 文本框, 用户可编辑。 用户可编辑。 button:按钮 按钮
属性窗口The Property Inspector: 属性窗口 : Tag –控件名称 控件名称. 控件名称 String – 控件显示的内容 ForegroundColor –文字显示内容 文字显示内容 BackgroundColor –控件背景 控件背景

4MATLAB图形界面制作(GUI)与句柄图形

4MATLAB图形界面制作(GUI)与句柄图形
2019/4/2 3
一般制作步骤
界面制作包括界面设计和程序实现。具体制作 步骤如下:
(1)分析界面所要求实现的主要功能,明确设计任务。 (2)构建界面草图,并站在使用者的角度来审查草图。 (3)按构思的草图.制作(静态)界面并检查。 (4)编写界面动态功能的程序,对功能进行逐项检查。
[说明]
以上过程,仅是一般原则。在设计中,步骤之间也许要交叉 执行或复合执行。 设计和实现过程往往需要反复修改才能获得满意的界面。 建议先进行界面布局编码,后进行动态交互功能的编码。
2019/4/2 4
界面编程需要注意的事项
• 用户界面适合软件的功能(合适 性)。是指用户界面与软件功能 相融洽的程度。要避免用户的误 解、费解等。另外,不能为适应 某种体系结构的优势而导致界面 的不合适性。 容易理解。如果通过界面难以理 解界面的意图,使用起来一定费 力。容易理解是容易应用的前提。 要做到这一点:(1)界面中不能 有错字。(2)图标按钮含义直观 明了。(3)界面元素提供充分而 必要的提示。(4)界面结构能够 清晰的反映工作流程,以便用户 操作。 及时反馈信息。 防错处理。
2019/4/2 13
图形界面制作-菜单
• 在绝大多数的图形用户界面下,都包含有菜单。 通过选择各级菜单,可以执行相应的命令,实现 相应的功能。一般地,从菜单的标题或名字可以 大概了解该菜单的功能。在Windows系统中,菜 单一般位于用户图形界而的顶端。例如, MATLAB的主窗口中,就有一个主菜单栏,包括 File、Edit、View、Help等主菜单。在各级主菜单 下,还有相应的子菜单。 • 在MATLAB图形用户界面(GUI)设计中,有两种菜 单类型,分别是下拉式菜单类型Uimenu和内容式 菜单类型Uicontextmenu。

经典GUI基础入门:MATLAB中GUI用户图形界面学习

经典GUI基础入门:MATLAB中GUI用户图形界面学习

如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程序,这相对比较繁琐,并且不是所有用户都是这个能力。

就好比计算机的 DOS 系统,在有windows的情况下,您会选择DOS吗?当然我们也不排除骨灰级的人物!在本节教程我们主要针对没有G UI 创建和使用经历的网友,但是必要的M ATLAB基础知识是需要的。

在教程中我们将创建一个简单的GUI程序,它执行两个数的加法运行,然后显示其运算结果。

一、打开和创建GUI界面1、首先打开Matlab,在Command Window中输入guide回车2、此时打开GUI编辑器GUIDE(GUI Developer的缩写)2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI”如果创建新的GUI此时我们选择第一个标签页,但如果打开其它已经存在的GUI 就点击第二个标签吧2.2 这里我们选择第一个标签下的“Blank GUI”(空白 GUI),下面还有几个系统GUI模版,你可以根据需要选择其它的。

2.3 点击“OK”我们正式进入GUIDE界面,呵呵,是不是感觉似曾相识3、添加你需要的控件到figure中在添加控件之前,您最好对您的GUI界面布局已经有一定的构思了,否则盲目性太大了不利于您的编程。

下面是我们构思的布局。

二、添加控件和设置属性在正式讲解之前,我们先讲解下GUI中的鼠标基本操作(a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标(b) 在右边的figure中按住左键,画出您的控件,于是空间就在figure上(c) 你可以用鼠标拖拽figure上所有控件,来改变他们的位置(d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板1、从上面的布局构思,我们知道本GUI需要以下控件:三个“编辑文本框”(Edit Text):三个“静态文本框”(Static Text):一个“确定按钮”(Pushbutton)按照上面介绍的鼠标操作方法,将这6个控件拖到右边的figure中,如下图所示2、接下来就是编辑这些控件的属性好,下面从Static Text开始吧,双击其中一个“静态文本块”,将跳出该控件的“属性查看器”(Property Inspector)GUI控件的几个常用属性说明如下:position:指示空间在figure中的位置font**:字体相关属性string:相当如VB中的caption,就是显示在控件上的文字tag:控件的唯一标识符,相当于ID,我们需要tag来指定某一个空间2.1 在这里我们修改它的“string”属性为“+”2.2 同理修改它的“fontsize”属性为20在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。

MATLAB句柄图形

MATLAB句柄图形

句柄图形句柄图形对象句柄图形是对底层图形例程集合的总称,实际上是进行生成图形的工作句柄图形的概念:一幅图的每一组成部分是一个对象,每一个对象有一系列句柄和它相关,每一个对象又按需要可以改变属性1、图形框架窗口对象(Figure)(1)、绘制图形的图形框架窗口对象gca:获得当前坐标轴对象的句柄gcbf:获得当前正在执行调用的图形对象的句柄gcbo:获得当前正在执行调用的对象的句柄gcf:获得当前图形对象的句柄gco:获得当前对象的句柄get(gcf) %由于当前状态下不存在图形窗口,系统生成新的图形窗口(2)、核心(Core)对象核心对象:包括直线、文本和特殊对象(光、图像和面图)等基本的绘图命令坐标系对象:包括线、面图和等高线图等描述的数据对象MATLAB中创建核心对象的函数axes:坐标轴image:MATLAB中的图像light:光源line:二维图形中最基本的图形对象patch:按指定方式填充多边形rectangle:具有可设置边界和表面颜色的二维图形对象surface:图形表面text:图形中的文本[x y]=meshgrid([-2:0.4:2]);Z=x.*exp(-x.^2-y.^2);fh=figure('Position',[350 275 600 450],'Color','w');ah=axes('Color',[0.8 0.8 0.8],'XTick',[-2 -1 0 1 2],...'YTick',[-2 -1 0 1 2]);sh=surface('XData',x,'YData',y,'ZData',Z,...'FaceColor',get(ah,'Color')+0.1,...'EdgeColor','k','Marker','o',...'MarkerFaceColor',[0.5 1 0.85]);view(3)(3)、绘图(Plot)对象绘图对象的父对象可以是坐标轴对象或是群对象MATLAB中绘图对象及其绘图命令areaseries:用于创建area图barseries:用于创建bar图contourgroup:用于创建contour图errobarseries:用于创建errorbar图lineseries:提供给绘制线型图的plot和plot3等函数使用quivergroup:用于创建quiver和quiver3图形scattergroup:用于创建scatter和scatter3图形stairseries:用于创建阶梯图形stemseries:用于创建stem和stem3图形surfaceplot :提供给surf和mesh群函数使用[x y z]=peaks;[c h]=contour(x,y,z);set(h,'LineWidth',3,'LineStyle',':')(4)、注释对象图形编辑工具栏Insert菜单注释函数x=-2*pi:pi/12:2*pi;y=x.^2;subplot(2,2,1:2)plot(x,y)h1=subplot(223);y=x.^4;plot(x,y)h2=subplot(224)y=x.^5;plot(x,y)%定义注释矩形的位置和大小p1=get(h1,'Position');t1=get(h1,'TightInset');p2=get(h2,'Position');t2=get(h2,'TightInset');x1=p1(1)-t1(1);y1=p1(2)-t1(2);x2=p2(1)-t2(1);y2=p2(2)-t2(2);w=x2-x1+t1(1)+p2(3)+t2(3);h=p2(4)+t2(2)+t2(4);%创建注释矩阵来环绕下面两个子图annotation('rectangle',[x1 y1 w h],...'FaceAlpha',0.2,'FaceColor','red','EdgeColor','red');通用函数get和set1、get函数get(handle,’PropertyName’):得到对象的属性及其属性值Hf_1=figure('color','w')p=get(Hf_1,'position') %位置p=get(Hf_1,'Children') %子对象p=get(Hf_1,'Color') %颜色get(Hf_1) %整个图形的属性2、set函数set(H,’PropertyName’,PropertyValue):可以同时设置多个属性的值set(H,a):a为结构体,字段名为图形对象的属性名,字段值为属性值set(H,pn,pv):通过单元型变量为图形对象进行属性赋值,其中pn和pv为单元型变量,pn 为1*n的字符型单元变量,其分量为图形对象的属性名,pv可以是m*n的单元型变量,这里m为句柄数组H的长度,即m=length(H)x=-2*pi:pi/12:2*pi;y=x.^2+x.^3;h=figure;plot(x,y);set(h,'position',[232 248 560 420])set(h,'units') %帮助set(h,'position') %帮助figure('Color','blue','NumberTitle','off','Name','My Figure')Hf_fig=figureHf_line=lineset(Hf_line)get(Hf_line)x=linspace(-2*pi,2*pi,200);y=sin(x);Hf_sin=plot(x,y);set(Hf_sin,'Color',[1 0.5 0],'LineWidth',3)z=cos(x);hold onHf_cos=plot(x,z);set(Hf_cos,'Color',[0.75 0.75 1])查找对象Hf_fig=gcf:返回当前图形的句柄Hf_ax=gca:返回当前图形的当前坐标轴句柄Hx_obj=gco或是Hx_obj=gco(Hf_fig):获取当前对象findobj函数Hx=findobj(‘P1name’,P1value,…):返回根部和根部以下的那些属性值与findobj参数项匹配的对象句柄Hx=findobj(Objecthandle,‘P1name’,P1value,…):限定在Objecthandle中列出的对象和它们的子对象Hx=findobj(Objecthandle,’flat’,‘P1name’,P1value,…):限定在Objecthandle中列出的对象H=findobj:返回根对象和它所有子对象的句柄H=findobj(Objecthandle):返回Objecthandle中列出的对象和它们的子对象的句柄当前对象的定义:用鼠标刚刚点过的对象x=linspace(-pi,pi,100);y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');H1_lines=get(gca,'Children');for k=1:size(H1_lines)if get(H1_lines(k),'color')==[0 1 0] %查找图中绿色线条的句柄H1_green(k)=H1_lines(k);endendH1_green堆积次序堆积次序决定哪一对象叠加在其他对象上,最后被创建的对象在堆栈顶部默认属性使用set函数默认属性名:Default+属性名set(0,'DefaultAxesColorOrder',[0 0 0],...'DefaultAxesLineStyleOrder','-|--|:|-.')z=peaks;plot(1:49,z(4:7,:))。

MATLAB程式设计入门篇握把式图形与GUI设计

MATLAB程式设计入门篇握把式图形与GUI设计
>> h=plot(humps); >> set(h, 'linestyle')
get 範例
get範例:
>>get(h, 'LineWidth') % 取得曲線寬度
ans =3;
>> get(h, 'Color')
% 取得曲線顏色
ans =
001
>> get(h)
%列出 h 的所有性質的值

findobj 範例
uicontrol('style', 'edit', 'position', [200 270 80 30]);
uicontrol('style', 'list', 'position', [200 320 80 30], 'string', '1|2|3|4');
uicontrol('style', 'popup', 'position', [200 370 80 30], 'string', 'one|two|three');
uicontrol('style', 'radio', 'position', [200 120 80 30]);
uicontrol('style', 'frame', 'position', [200 170 80 30]);
uicontrol('style', 'check', 'position', [200 220 80 30]);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/1/29 2
一般制作步骤
界面制作包括界面设计和程序实现。具体制作 步骤如下:
(1)分析界面所要求实现的主要功能,明确设计任务。 (2)构建界面草图,并站在使用者的角度来审查草图。 (3)按构思的草图.制作(静态)界面并检查。 (4)编写界面动态功能的程序,对功能进行逐项检查。
[说明]
以上过程,仅是一般原则。在设计中,步骤之间也许要交叉 执行或复合执行。 设计和实现过程往往需要反复修改才能获得满意的界面。 建议先进行界面布局编码,后进行动态交互功能的编码。
• •
不同的界面效果直接影响相关感受,所以精心设计很有必要。请看示例
4
设计过程
明确设计任务 构建界面草图,并审查
制作静态界面
添加动态功能
是否满足要求
2019/1/29
5
示例
简洁
色彩Βιβλιοθήκη 功能好的界面方便
2019/1/29
6
设计工具(GUIDE)
为了能够简单、方便地进行GUI的设计与开发工作, MATLAB提供了一套方便、实用的GUI设计工具。 MATLAB中的GUI设计工具包括以下几个:
2019/1/29 7
对象设计编辑器 (Layout Editor)
• 在MATLAB命令窗口 内,选择File主菜单的 New子菜单,会看到 一个GUI的二级子菜单, 单击它,就会显示对 象设计编辑器(Layout Editor);也可以在 MATLAB命令窗口的 命令行上输入guide, 显示对象设计编辑器。 启动窗口如右图所示。
2019/1/29 3
界面编程需要注意的事项
• 用户界面适合软件的功能(合适 性)。是指用户界面与软件功能 相融洽的程度。要避免用户的误 解、费解等。另外,不能为适应 某种体系结构的优势而导致界面 的不合适性。 容易理解。如果通过界面难以理 解界面的意图,使用起来一定费 力。容易理解是容易应用的前提。 要做到这一点:(1)界面中不能 有错字。(2)图标按钮含义直观 明了。(3)界面元素提供充分而 必要的提示。(4)界面结构能够 清晰的反映工作流程,以便用户 操作。 及时反馈信息。 防错处理。
2019/1/29 10
菜单编辑器(2)
• 图中左上角第一个按钮用于创建下拉式菜单。用户可以通过点击它, 来创建下拉式主菜单。第二个按钮用于创建下拉式主菜单的子菜单, 在选中已经创建的下拉式主菜单后,可以单击这个按钮来创建选中的 下拉式主菜单的子菜单。选中创建的某个下拉式菜单,菜单编辑器的 右边就会显示该菜单的有关属性,可以在这里设置、修改菜单的属性。 • 菜单编辑器界面的左下角有两个按钮,选择第一个按钮,可以创建 下拉式菜单,选择第二个按钮,可以创建context Menu菜单(类似于弹 出式菜单)。选择它后,图中左上角的第三个按钮就会变成可用,单 击它可以创建Context Menu主菜单。在选中已经创建的Context Menu主菜单后,可以单击第二个按钮创建选中的Context Menu主菜 单的子菜单。与下拉式菜单一样,选中创建的某个Context Menu菜单, 菜单编辑器的右边就会显示该菜单的有关属性,可以在这里设置、修 改菜单的属性。
2019/1/29 12
图形界面制作-菜单
• 在绝大多数的图形用户界面下,都包含有菜单。 通过选择各级菜单,可以执行相应的命令,实现 相应的功能。一般地,从菜单的标题或名字可以 大概了解该菜单的功能。在Windows系统中,菜 单一般位于用户图形界而的顶端。例如, MATLAB的主窗口中,就有一个主菜单栏,包括 File、Edit、View、Help等主菜单。在各级主菜单 下,还有相应的子菜单。 • 在MATLAB图形用户界面(GUI)设计中,有两种菜 单类型,分别是下拉式菜单类型Uimenu和内容式 菜单类型Uicontextmenu。
对象设计编辑器(Layout Editor)(有的书上成为布局编辑器): 在图形窗口内创建、安排各种对象 。 菜单编辑器(Menu Editor) :创建、设置、修改下拉式菜单和 内容式菜单; 对象属性查看器(Property Inspector):可查看每个对象的属 性值,也可修改、设置对象的属性值;
(1)简单性 : 设计界面时,力求简洁、直观、清晰地体现出界面的功能和特征。 (2)一致性: 所谓一致性有两层含义:一是读者自己开发的界面风格要尽量一致;二 是新设计的界面要与其他已有的界面风格不要截然相左。这是因为用户在 初次使用新界面时,总习惯于凭经验进行试探。比方说,图形显示区常安 排在界面左半边,而按键等控制区被排在右侧。 (3)其他考虑因素: 除了以上对界面的静态要求外,还应注意界面的动态性能。如界面对用 户操作的响应要迅速、连续;对持续时间较长的运算,要给出等待时间提 示,并允许用户中断运算。
图形用户界面的作用
假如进行数据分析、解方程等计算结果比较 单一的工作,那么一般不会考虑GUI的制作。 但是如果想向别人提供应用程序,想进行 某种技术、方法的演示,想制作一个供反 复使用且操作简单的专用工具,那么图形 用户界面也许是最好的选择之一。
2019/1/29
1
设计原则
由于要求不同,设计出来的界面也就千差万别。但是,自从人们开始设计图形界 面以来,界面设计的评判标准却没有太大的变化。简单来说,一个好的界面应遵 循以下三个原则 :
2019/1/29 8
对象设计编辑器 (Layout Editor)
2019/1/29
9
菜单编辑器
• 利用菜单编辑器,可 以创建、设置、修改 下拉式菜单和内容式 菜单。从对象设计编 辑器界面的工具条上 或从菜单栏中Tools 的下拉菜单中选择 Menu Editor ,就可 以看到菜单编辑器 (Menu Editor)的界面, 如右图所示。
2019/1/29
11
对象属性查看器
• 利用对象属性查看器,可 以查看每个对象的属性值, 也可以修改、设置对象的 属性值,从对象设计编辑 器界面工具条,或者选择 view菜单下的Inspect Property子菜单,就可以 看到对象属性查看器的界 面。另外,在MATLAB命 令窗口的命令行上输入 inspect,也可以看到对象 属性查看器。如右图所示。
2019/1/29

• 风格一致和必要的个性化。风 格一致的好处是可以减少用户 的记忆量,减少出错几率,并 迅速积累操作经验。必要个性 化是使用户对软件留下深刻印 象。合理布局。 • 合理色彩。难,不同的人对颜 色的喜好不同。另外不可过分 依靠色彩,因为用户有可能是 色盲或色弱。 • 适应用户群体和国际化。 • 最少的操作步骤。 • 可以复用。
相关文档
最新文档