MatlabGUI整理.docx
《MatlabGUI整理.docx》由会员分享,可在线阅读,更多相关《MatlabGUI整理.docx(17页珍藏版)》请在冰豆网上搜索。
MatlabGUI整理
Matlab入门教程第八章GUI程序设计
GUI(GraphicalUserInterfaces):
由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。
基本图形对象分为控件对象和用户界面菜单对象,简称控件和菜单。
一. 控件对象及属性(Objectanditsattributesofcontroller))
1.GUI控件对象类型(Themodeofcontrollerobject)
控件对象是事件响应的图形界面对象。
当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback).
控件对象及其功能:
(表7—1)
2. 控件对象的描述(Descriptionofcontrollerobject)
Matlab中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。
一种为静态控件,是一种不产生响应的控件,如文本框等。
每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,既属性。
属性由两部分组成:
属性名和属性值,它们必须是成对出现的。
(1)按钮(PushButtons):
执行某种预定的功能或操作;
(2)开关按钮(ToggleButton):
产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback中的内容;
(3)单选框(RadioButton):
单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项;
(4)复选框(CheckBoxes):
单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项;
(5)文本编辑器(EditableTexts):
用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;
(6)静态文本框(StaticTexts):
仅仅用于显示单行的说明文字;
(7)滚动条(Slider):
可输入指定范围的数量值;
(8)边框(Frames):
在图形窗口圈出一块区域;
(9)列表框(ListBoxes):
在其中定义一系列可供选择的字符串;
(10)弹出式菜单(PopupMenus):
让用户从一列菜单项中选择一项作为参数输入;
(11)坐标轴(Axes):
用于显示图形和图象
3.控件对象的属性(Attributesofcontrollerobject)
用户可以在创建控件对象时,设定其属性值,未指定时将使用系统缺省值。
两大类控件对象属性:
第一类是所有控件对象都具有的公共属性,第二类是控件对象作为图形对象所具有的属性。
A,控件对象的公共属性
Children取值为空矩阵,因为控件对象没有自己的子对象
Parent取值为某个图形窗口对象的句柄,该句柄表明了控件对象所在的图形窗口
Tag取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个标识值控制该控件对象
Type取值为control,表明图形对象的类型
Serrate取值为空矩阵,用于保存与该控件对象相关的重要数据和信息
Visible取值为no或off,
B,控件对象的基本控制属性
Background取值为颜色的预定义字符或BURG数值
Callback取值为字符串,可以是某个M文件名或一小段Matlab语句,当用户激活某个控件对象时,应用程序就运行该属性定义的子程序。
Enable取值为on(缺省值),inactive和off
Extend取值为四元素矢量[0,0width,height],记录控件对象标题字符的位置和尺寸
ForegroundColor取值为颜色的预定义字符或BURG数值
Max,Min取值都为数值
String取值为字符串矩阵或数组,定义控件对象标题或选项内容
Style取值可以是button's,radiation,checkbox,edit,text,slider,frame,menopause或listbox
Units取值可以是pixels,normalized,inches,centimeters或points
Value取值可以是矢量,也可以是数值,其含义及解释依赖于控件对象的类型
C,控件对象的修饰控制属性
Entangle取值为normal,italic,oblique,
FontName取值为控件标题等字体的字库名
Fantasize取值为数值,
FontWeight取值为points,normalized,inches,centimeters或pixels
Sentimentalization取值为left,right,定义对齐方式
D,控件对象的辅助属性
Populist取值为数量值
Slider取值为两元素矢量[instep,maxstep],用于slider控件
Selected取值为on或off
Collectivization取值为on或off
E,Callback管理属性
BusyAction取值为cancel或queue
Countdown取值为字符串,一般为某个M文件名或一小段Matlab程序
Creature取值为字符串,一般为某个M文件名或一小段Matlab程序
Deletion取值为字符串,一般为某个M文件名或一小段Matlab程序
Divisibility取值为on,callback或off
Corruptible取值为on或off
二.GUI开发环境(GUIDevelopmentEnvironment,GUIDE)
Matlab提供了一套可视化的创建图形窗口的工具,使用用户界面开发环境可方便的创建GUI应用程序,它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。
Matlab提供了一套可视化的创建图形用户接口(GUI)的工具,包括:
*布局编辑器(LayoutEdtor)-------在图形窗口中加入及安排对象。
布局编辑器是可以启动用户界面的控制面板,上述工具都必须从布局编辑器中访问,用guide命令可以启动,或在启动平台窗口中选择GUIDE来启动布局编辑器。
*几何排列工具(AlignmentTool)-----调整各对象相互之间的几何关系和位置
*属性编辑器(PropertyInspector)-----查询并设置属性值
*对象浏览器ObjectBrowser)-----用于获得当前Matlab图形用户界面程序中所有的全部对象信息,对象的类型,同时显示控件的名称和标识,在控件上双击鼠标可以打开该控件的属性编辑器。
*菜单编辑器(MenuEditor)-----建立窗口菜单条的菜单和任何构成布局的弹出菜单
在Matlab中,GUI的设计是以M文件的编程形式实现的,GUI的布局代码存储在M文件和MAT文件中,而在MAZATLAN中有了很大的改变,MAZATLAN将GUI的布局代码存储在FIG文件中,同时还产生一个M文件用于存储调用函数,在M文件中不再包含GUI的布局代码,在开发应用程序时代码量大大减少。
1. 布局编辑器(Layouteditor):
用于从控件选择板上选择控件对象并放置到布局区去,布局区被激活后就成为图形窗口。
在命令窗口输入GUIDE命令或点击工具栏中的guide图标都可以打开空白的布局编辑器,在命令窗口输入GUIDEenameler可打开一个已存在的名为enameler图形用户界面。
(1)将控件对象放置到布局区
a. 用鼠标选择并放置控件到布局区内;
b. 移动控件到适当的位置;
c. 改变控件的大小;
d. 选中多个对象的方法;
(2) 激活图形窗口
选Tools菜单中的ActivateFigure项或点击工具条上的Putrefactive按钮,在激活图形窗口的同时将存储M文件和FIG文件,如所建立的布局还没有进行存储,用户界面开发环境将打开一个SaveAs对话框,按输入的文件的名字,存储一对同名的M文件和带有.fig扩展名的FIG文件。
(3) 运行GUI程序
在命令窗口直接键入文件名或用openfig,open或load命令运行GUI程序。
(4) 布局编辑器参数设置
选File菜单下的Preferences菜单项打开参数设置窗口,点击树状目录中的GUIDE,既可以设置布局编辑器的参数。
(5) 布局编辑器的弹出菜单
在任一控件上按下鼠标右键,会弹出一个菜单,通过该菜单可以完成布局编辑器的大部分操作。
2. 几何位置排列工具(Alignmenttool)
用于调节各控件对象之间的相对位置。
3. 用属性编辑器设置控件属性(SetattributesofcontrollerwithPropertyInspector)
在属性编辑器中提供了所有可设置的属性列表并显示出当前的属性。
(1)属性编辑器(OpeningPropertyInspector):
三种方法:
1.用工具栏上的图标打开;2.从View菜单中选择PropertyInspector菜单项;3.在按鼠标右键弹出的PropertyInspector菜单中选择菜单项。
(1) 使用属性编辑器(UsingPropertyInspector)
a. 布置控件
b. 定义文本框的属性
c. 定义坐标系
d. 定义按钮属性
e. 定义复选框
4. 菜单编辑器(MenuEditor):
包括菜单的设计和编辑,菜单编辑器有八个快捷键,可以利用它们任意添加或删除菜单,可以设置菜单项的属性,包括名称(Label)、标识(Tag)、选择是否显示分隔线(Separatorabovethisitem)、是否在菜单前加上选中标记(Itemischecked)、调用函数(Callback)。
5. 对象浏览器(ObjectBrowsers):
用于浏览当前程序所使用的全部对象信息,可以在对象浏览器中选种一个或多个控件来打开该控件的属性编辑器。
三、GUI程序设计(GUIProgramdesign)
包括图形界面的设计和功能设计两个方面
例1:
用于绘图和图形旋转的GUI:
1、 布置控件:
一个坐标系、一个文本框、一个复选框,一个按钮
2、 定义文本框的属性:
String---简单设计示例,FontName---隶书,Fantasize--22
3、 定义坐标系:
Visible—off,
4、 定义按钮属性:
String—绘图,FontName,ForegroundColor,outsize,Background,Callback---surf(peaks(30))
5、 定义复选框:
String—rotate,Callback—rotate
例2:
设计一个简单信号分析仪的程序,要求根据输入的两个频率和时间间隔,计算函数x=sin(2πf1t)+sin(2πf2t)的值,并对函数进行快速傅立叶变换,最后分别绘制时域和频域的曲线。
1.