一、基本概念
图形用户界面(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资源的对话框,包括文件打开、文件保存、颜色设置、字体设置、打印设置、打印预览、打印等。还有一些其他的,可以