600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MATLAB图形用户界面设计

MATLAB图形用户界面设计

时间:2021-08-05 20:50:30

相关推荐

MATLAB图形用户界面设计

一、基本概念

图形用户界面(Graphical user interfaces,GUI)是由窗口、光标、按键、菜单、文字说明等组件构成的一种人与计算机通信的界面显示格式。在该系统中,允许用户使用鼠标等输入设备操纵屏幕上的突变或者菜单选项,以选择命令、调用文件、启动程序或执行其他一些日常任务。

在MATLAB中,图形用户界面通常是一种包含多种图形对象的界面,典型的图形界面包括图形显示区域,功能按钮控件以及用户自定义的功能菜单。为了让界面实现各种功能,需要对各个图形对象进行布局和编程。这样,当用户通过鼠标或键盘选择、激活这些图形对象时,就能执行相应的事件行为。

一般采用M文件和GUI工具箱两种方式结合来设计用户交互界面。

1、 图形用户句柄:

在MATLAB图形界面设计的过程中,MATLAB每创建一个图形对象时,都会为该对象分配唯一的一个值用以标识该对象,称其为图形对象的句柄(Handle)。句柄具有唯一性,不同对象的句柄不会重复和混淆。通过句柄可以实现对该对象的各种控制和各种属性的设置

在MATLAB中利用get()函数获取对象的属性值。

在MATLAB中利用set()函数设置对象的属性值。

在MATLAB中利用findobj()函数查找对象可以获得对象的句柄。

2、图形用户界面开发环境

进行图形界面化设计,通常用两种方法:

通过M文件创建图形界面;

通过GUI工具箱设计图形界面(命令行方式:guide;菜单方式)

MATLAB提供了一套可视化的创建图形窗口的工具,使用图形用户界面开发环境可以方便地创建GUI应用程序,它可以根据用户设计的GUI布局,自动生成M文件的框架,用户可以使用这一框架编制自己的应用程序。

工具

2.1 常用的用户界面设计工具

布局编辑器

位置调整工具

属性查看器

对象浏览器

Tab顺序编辑器(使用该工具,可以设置用户按下键盘上的Tab键时,对象被选中的先后顺序。)

3 菜单设计

两种方法建立用户菜单:

利用菜单编辑器;

利用MATLAB提供的uimenu()函数。

3.1 菜单编辑器包括菜单的设计和编辑,共有8个快捷键,可以利用它们任意添加或者删除菜单,可以设置菜单项的属性,包括名称(Label)、标识(Tag)、选择是否显示分割线、是否在菜单前加上选中标记、调用函数(callback)。

3.2 菜单对象常用属性:公共属性、特殊属性、外观属性

公共属性:子对象、父对象、标签(Tag)、类型(Type)、用户数据(UserData)、使能、可见性。

特殊属性:回调属性(Callback)、菜单名。

外观属性:位置、分隔线、检录符、前景颜色。

Tag:用于定义菜单对象的标识值取值为字符串。一旦Tag属性被定义,那么在任何程序中均能通过该标识找出菜单对象。

**UserData:**用于保存与该菜单对象相关的重要数据或信息,从而达到传输数据或信息的目的,它的取值是一个矩阵。可以使用set()和get()函数访问该属性。

Callback:Tag_Callback(hObject, evevdata, handles),用于加入用户的处理语句以实现所需功能。其中hObject是控件的句柄;evevdata是备用参数;handles是一个结构数组,存放当前窗口所有对象的句柄,包括图形窗、所有控件和菜单的句柄,且可以增加一些域来传递用户数据。

3.3 快捷菜单

快捷菜单是右击某对象时在屏幕上弹出的菜单。这种菜单出现的位置时不固定的,而且总是和某个图形对象相联系。在MATLAB中使用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单。

4 对话框设计

在图形用户界面程序设计中,对话框是重要的信息显示获取输入数据的用户界面对象。使用对话框,可以使应用程序的界面更加友好,使用更加方便。MATLAB提供了两类对话框,一类为Windows的公共对话框,另一类为MATLAB风格的专用对话框。

4.1 公共对话框

公共对话框是利用Windows资源的对话框,包括文件打开、文件保存、颜色设置、字体设置、打印设置、打印预览、打印等。还有一些其他的,可以自行了解。

① 文件打开对话框

② 文件保存对话框

4.2 MATLAB专用对话框

主要包括:帮助、错误信息、信息提示、警告信息等对话框。

① 错误信息对话框

② 帮助对话框

③ 信息提示对话框

④ 进程条

⑤ 输入对话框

⑥ 警告信息对话框

5 GUI的控件简介

在MATLAB的图形界面设计中,添加、使用图形控件是非常重要的。

5.1 常用控件简述

控件对象是事件响应的图形界面对象。当某一件事发生时,应用程序会做出响应并且执行某些预定的功能子程序(Callback)。MATLAB中的控件主要有两种:动作控件静态控件。其中动态控件在鼠标单击后会产生相应的响应。

① 控件类型

按钮(Push Button)

切换按钮(Toggle Button)

单选按钮(Radio Button)

复选框(Check Box)

列表框(List Box)

弹出式菜单(Popup Menu)

可编辑文本(Edit Box)

滑块(Slider)

静态文本(Static Text)

边框(Frame)

轴(Axes)

② 控件属性

公共属性:所有控件对象都具有的属性。 特有属性:控件对象作为图形对象所具有的属性。

控件对象的公共属性:

Children:取值为空矩阵,因为控件对象没有自己的子对象。

Parent:取值为某个图形窗口的句柄,该句柄表明了控件对象所在的图形窗口。

Tag:取值为字符串,定义了控件的标识值。在所有的程序中均可通过这个标识值控制该控件对象。

Type:取值为uicontrol,用于表明图形对象的类型。

UserData:用于保存与该控件对象相关的重要数据和信息。

Visible:取值为on或off。

控件对象的基本控制属性:这些属性基本上定义了控件的外观和其需要响应的函数。

BackgroundColor:

Callback:取值为字符串,可以是某个M文件名或者一小段MATLAB语句,当某个控件对象被用户激活时,应用程序就会运行该属性定义的子程序。

Enable:取值为on,inactive、off。

Extend:

Max:

Min:记录控件对象标题字符的位置和尺寸。

String:取值为字符串或快数组,定义控件对象标题或选项内容

Style:取值可以是pushbutton、checkbox、slider,定义控件的外观样式。

Unit:定义控件的度量单位。

Value:取值可以是矢量也可以是数值,其含义及解释依赖于控件对象的类型。

**控件对象的修饰属性:**这些属性主要用于定义控件中字体的颜色、大小属性。

FrontAngle

FontName:取值为控件标题等字体的字库名。

FontSize

FontUnit

FontWeight

HorizontalAligment:定义该控件对象标题等的对齐方式

**控件对象的辅助属性:**这些属性主要用于辅助完善整个控件的功能。

ListboxTop:取值为数量值,用于listbox控件对象。

SlideStop:取值为两元素矢量,用于slider控件对象。

Selected:取值为on或off。

Callback管理属性:这些属性主要用于定义回调函数的一些响应属性

BusyAction:取值为cancel或者queue。

ButtDownFun:取值为字符串,一般为某个M文件或者一小段MATLAB程序。

Creatfun:取值为字符串,一般为某个M文件或者一小段MATLAB程序。

Deletfun:取值为字符串,一般为某个M文件或者一小段MATLAB程序。

HandleVisibility:取值为字符串,一般为某个M文件或者一小段MATLAB程序。

HandleVisibility:取值为on、callback或off。

③ 控件的操作

MATLAB提供了用于建立控件对象的函数uicontrol()

一般情况下,在进行具体的GUI设计时我们只需要按照设计的具体需求,进行布局设计,程序编程,对String属性值进行修改即可。

6、MATLAB之GUI通俗理解

MATLAB GUI遵循的是“分发”的规则,属于典型的时间驱动型的,所有的函数都处于待命的状态,一旦有所动作,就会触发相关函数实现某种功能。

GUI的所有控件使用同一个handles结构体,handles结构体中保存了图形窗口中所有对象的句柄,可以使用handles获取或设置某个对象的属性。

上图中,第一层为根对象;其可以包含一个或多个图像窗口,每一个图形窗口可包含一组或多组坐标轴。

第二层是图形窗口对象,也称figure对象,它表示整个图像窗口,是根的直接子对象。

第三层是坐标轴对象和用户接口对象,是figure的直接子对象。坐标轴对象是核心对象和组对象的父对象,用于数据的可视化;用户接口对象,也称为UI对象,用于MATLAB与用户之间的交互操作,它包括面板和按钮组,uicontrol控件,菜单、表格、右键菜单和工具栏。

第四层是核心对象和组对象。核心对象为所有绘图的基本元素;组对象为多个核心对象组合而成的坐标轴子对象。

创建对象时,MATLAB会返回一个用于标识此对象的数值,称为该对象的句柄。每个对象都有独一无一的句柄,通过操作句柄可查看对象所有属性修改大部分属性

根对象的句柄值为0,图形窗口的句柄值默认为正整数,其他对象的句柄值为系统随机产生的正数。

二、 MATLAB之GUI的界面基本介绍

通过文件—>预设—>来设计控件的展示方式。

③ 查看

主要功能:是否显示工具条、状态栏、并可查看当前选中的控件的属性,查看当前GUI包含的所在空间,查看当前GUI界面的代码,查看选中空间的回调函数。

④ 布局

主要功能:

⑤工具

(16)菜单编辑器

包括菜单栏(GUI上方的菜单选项卡),右键弹出菜单。

(20)属性检查器

调出当前选中控件的所有属性,important,GUI的设计,其实就是对各个控件属性的操作并匹配一定的脚本程序来完成的

(21)控件查看器

当前Figure包含的所有控件。

(22)运行

(23)按钮控件

其常用的属性:有Tag(每个控件对应的唯一身份标识/一旦Tag属性被定义,那么在任何程序中均能通过该标识找出菜单对象。)

FontSize(按钮上显示字体的大小),String(按钮上显示的内容),Callback(按钮按下后执行的执行内容,按钮一般代表着回调函数)

在这里插入图片描述

至此,MATLAB之GUI基本操作介绍完毕。

三、基本实例介绍

在不添加任何控件的情况下,会有三个以GUI01为头的函数,分别对应GUI窗口界面,GUI打开时预处理函数,GUI界面的输出,一般这三个默认函数不要自行改动,最多就是在OpeningFuc函数中进行数据的预置。

GUI界面的好处是,在生成任何一个回调函数时,都会生成一个注释及该回调函数可能用到的形参,非常方便,而GUI界面开发主要用到的函数有set,get,setappdata,getappdata,传送参数有handles,eventdata后续使用中会发现其用的非常非常多。

基本步骤如下:

1.首先,往开发界面中拖入一个StaticText,双击该控件,调出其属性菜单,修改其FontSize属性值为14、ForegroundColor属性值选为红色、String属性值设置为请输入相加的两个数:

2、再拖入两个Edit Text(右击控件拖动为复制控件),三个Static Text,一个PushButton按钮,调整一下画幅大小(GUI主界面的右下角黑点)如图所示

3、依次设置各控件的属性。(从左至右,从上到下)

至此,界面设计完毕。

5、回调函数的编写,右击按钮,查看回调,回调函数。

会将编辑器打开,而且,其函数的开头是以按钮的Tag(Add)开头,其参数有hObject,eventdata,handles,在这个案例中,我们使用handles就可以。

在函数下面写入如下代码:

sum_value1=str2num(get(handles.sum1,'String'));sum_value2=str2num(get(handles.sum2,'String'));sum=sum_value1+sum_value2;set(handles.sum_value,'String',num2str(sum));

代码讲解:

用get函数分别获得输入框中的文本内容,其中,对象由handles.Tag来唯一对应,sum1就是第一个编辑框的Tag,String为其输入框的一个属性,正好对应文本,但是,数学的运算只能是数字计算,所以出现str2num这个函数,不用的话计算结果会出错,是将字符串变成数字。对两个数值进行相加后,同理,num2str将数字转变成字符串,利用set函数送到第三个Static Text中,其Tag为sum_value。

运行(F5或点脚本运行按钮)以后在第一个框中输入数字,第二个框中输入数字,点击计算,会出现以下结果:其界面的名字与fig及m文件的名字一致。

到此,脚本的组成,回调函数的添加,按钮控件Push Button与文本控件Edit Text及Static Text的应用就介绍完成。

以上主要参考:

matlab操作之GUI

MATLAB操作之GUI实例

[MATLAB程序设计基础与应用]

四、 MATLAB GUI 后续操作

接着上面的已经编写的GUI。在命令行窗口输入deploytool,敲回车,选择第一个。

然后在图中标出的位置选择刚刚gui的.m程序。下面的那些根据自己情况填写。

之后Package会变绿,点击。等待打包完成。

完成后即可在打包文件夹的\for_testing下看到自己的exe文件。

在for_testing文件夹下,双击.exe文件,即可运行上述编好的GUI小程序。

五、MATLAB GUI设计学习手记(第二版)

北京航空航天大学出版社

学习GUI设计,必须掌握以下几个内容:

① 菜单和控件

需要详细掌握菜单和控件。对于菜单,弄清楚菜单与菜单选项之间的关系和如何调用就可以。控件的使用主要是用好Callback属性。

② 事件处理

需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回调函数技术,可以让复杂的回调变得简单。

③ GUI设计的原则和步骤

在设计GUI的时候,要注意一定的原则和步骤,分析界面所要实现的主要功能,明确设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。

④ GUI实现方式的选择

实现的方式:GUIDE还是全脚本?

第四章、句柄图形系统

第五章、预定义对话框

第六章、采用GUIDE建立GUI

第十一章、综合实例

① 建立一个用户密码登录框

② 制作一个科学计算器

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。