1 GUI对象层次结构
2 GUI的基本知识
本小节主要介绍如何新建GUI,打开GUI文件、Layout编辑器,GUIDE模版等GUI基础知识
2.1 启动GUI
欲启动GUI操作,可以在命令窗口中输入guide,将启动GUIDE Quick Start对话框。
利用GUIDE Quick Start对话框,用户可以进行如下操作:
* 利用GUIDE模版创建一个新的GUI,用户可依照目的进行改进。
* 打开已有的GUI。
2.2 布局(Layout)编辑器
当用户在GUIDE中打开一个GUI时,该GUI将显示在Layout编辑器中
Layout编辑器是所有GUIDE工具的控制面版。
用户可以使用鼠标拖动模版左边的控件(按钮、坐标轴、单选按钮等)到中间的布局区域。
2.3 GUIDE模版介绍
GUIDE Quick Start对话框提供了几种常用的GUI模版。
使用GUI模版的好处是与使用空白GUI相比,用户可以更方便地改变该模版的布局和功能。
一旦用户选择了其中的一种模版,在GUIDE Quick Start对话框的右侧就出现该模版的预览。
2.4 运行GUI
单击工具栏最右边的绿色按钮,即运行当前的GUI窗口。
如果是第一次运行,那么MATLAB将提示对该GUI窗口进行保存,并在运行的同时,弹出M文件,给用户进行编辑操作。
3 创建GUI对象
图形用户界面设计窗口
3.1GUI设计模板
在MATLAB主窗口中,选择File菜单->New菜单项->GUI命令,就会显示图形用户界面的设计模板。最新版的MATLAB R2016b 中,选择新建->APP->GUIDE。
MATLAB为GUI设计一共准备了4种模板,分别是:
Blank GUI(默认)
GUI withUicontrols(带控件对象的GUI模板)
GUI with Axes and Menu(带坐标轴与菜单的GUI模板)
Modal Question Dialog(带模式问话对话框的GUI模板)
3.2GUI设计窗口
选中一个模板确定后,就会显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设计窗口中显示的结果不同。
GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。
GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。
3.3GUI设计窗口的基本操作
属性编辑器
在GUI设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。通过属性编辑器改变属性值。
对象属性查看器
利用对象属性查看器,查看、修改、设置对象的属性值。从GUI设计窗口工具栏上选Property Inspector命令按钮,或者选择View菜单下的Property Inspector子菜单,就可以打开对象属性查看器。
另外,在MATLAB命令窗口的命令行上输入inspect,也可以看到对象属性查看器。
菜单编辑器
利用菜单编辑器,可以创建、设置、修改下拉式菜单和快捷菜单。
从GUI设计窗口的工具栏上选择Menu Editor命令按钮,或者选择Tools菜单下的Menu Editor子菜单,就可以打开菜单编辑器。
菜单编辑器左上角的第一个按钮用于创建一级菜单项。第二个按钮用于创建一级菜单的子菜单。
菜单编辑器的左下角两个按钮,选择第一个按钮,可以创建下拉式菜单。选择第二个按钮,可以创建Context Menu菜单。选择它后,菜单编辑器左上角的第三个按钮就会变成可用,单击它就可以创建Context Menu主菜单。在选中已经创建的Context Menu主菜单后,可以单击第二个按钮创建选中的Context Menu主菜单的子菜单。与下拉式菜单一样,选中创建的某个Context Menu菜单,菜单编辑器的右边就会显示该菜单的有关属性,可以在这里设置、修改菜单的属性。
菜单编辑器左上角的第四个与第五个按钮用于对选中的菜单进行左移与右移,第六与第七个按钮用于对选中的菜单进行上移与下移,最右边的按钮用于删除选中的菜单。
对象浏览器
利用对象浏览器,可以查看当前设计阶段的各个句柄图形对象。
从GUI设计窗口的工具栏上选择Object Browser命令按钮,或者选择View菜单下的Object Browser子菜单,就可以打开对象浏览器。例如,在对象设计区内创建了3个对象,它们分别是Edit、Text、Push、Button、ListBox对象,此时单击Object Browser按钮,可以看到对象浏览器。
在对象浏览器中,可以看到已经创建的3个对象以及图形窗口对象figure。用鼠标双击图中的任何一个对象,可以进入对象的属性查看器界面。
位置调整工具
利用位置调整工具,可以对GUI对象设计区内的多个对象的位置进行调整。
从GUI设计窗口的工具栏上选择Align Objects命令按钮,或者选择Tools菜单下的Align Objects菜单项,就可以打开对象位置调整器。
对象位置调整器中的第一栏是垂直方向的位置调整,第二栏是水平方向的位置调整。在选中多个对象后,可以方便的通过对象位置调整器调整对象间的对齐方式和距离。
Tab顺序编辑器
利用Tab顺序编辑器(Tab Order Editor),可以设置用户按键盘上的Tab键时,对象被选中的先后顺序。
选择Tools菜单下的Tab Order Editor菜单项,就可以打开Tab顺序编辑器。例如,若在GUI设计窗口中创建了3个对象,与它们相对应的Tab顺序编辑器。
注:
MATLAB R2016b 中视图菜单下,“属性检查器”对应属性编辑器和对象属性检查器,属性检查器可以对对象的属性进行修改和设置。“编辑器”对应菜单编辑器。
不同版本,基本功能相似,叫法稍有不同,不必拘泥。
4 GUI编程
使用句柄结构进行GUI数据操作
GUIDE提供了一种机制来存储和检索共享的数据,这些操作都通过包含有GUI控件句柄的相同结构来实现,这种机制就称为句柄结构。
句柄结构包含有GUI的所有控件的句柄,它在M文件中被传递给每一个响应。
因此,该响应对保存任意共享数据十分有用。
4.1GUI的文件
1.句柄结构共享数据
(1)在各响应之间实现数据共享
(2)访问GUI数据
2.M文件中的函数和响应
用户可以给GUI和M文件的如下部分增加程序代码:
*打开函数(Opening function),该函数在GUI可见之前实施操作。
*输出函数(Output function),在必要的时候向命令行输出数据。
*响应(Callbacks),在用户激活GUI中的相应控件时实施操作。
M文件中的所有函数都有如下的输入参数与句柄结构相对应,M文件中的常用的输入参数如下:
*hObject,图形或是响应对象的句柄。
*handles,具有句柄或是用户数据的结构。
句柄结构往往在函数的最后阶段进行保存,使用如下命令:guidata(hObject,handles);
(1)打开函数
(2)输出函数
(3)响应
4.2给GUI的控件响应编制程序
1.“开关”按钮(Toggle Button)的响应
2.按钮(Radil Buttons)的响应
3.“复选框”控件(Check Boces)的响应
4.“文本框”控件(Edit Text)的响应
5.“滚动条”控件(Sliders)的响应
6.“列表框”控件(List Boxes)的响应
7.“弹出菜单”控件(Pop-up Menus)的响应
8.控件板(Panels)的响应
全文完,后续可能补充修正