Matlab GUI 界面设计基础(1)

matlab建立GUI有两种方式,一种是用脚本编写,一种是用GUIDE创建。GUIDE 编写GUI 方便、高效、性对比较简单。

一、创建或打开GUI

在Command 里面输入 GUIDE ,或者在open 菜单里创建或打开 GUI(Graphical User Interface),创建的时候有几种模板,一般默认(default)空(blank)模板。

二、编辑窗口

新建并且保存后,会生成相应的.fig文件和.m文件,在编辑界面,可以看到:

(1)、GUI 对象选择区,
提供可供选择的GUI对象,包括触控按钮、静态文本、slider、edit、table、弹起式菜单、panel、axes 等。

(2)、GUI 工具栏,
包括对齐、编辑等工具。

(3)、GUi 布局区,
用来安排GUI对象的位置,大小等;设置figure是否可变,是否显示网格、参考线等。

(4)、对齐工具,
用来对齐布局区的各个UI对象。

(5)、菜单编辑器,
用来建立菜单栏(Menu Bar)和右键菜单(Context Menu),用户创建的菜单在标准彩电之后。

(6)、属性查看器
用来查看、设置或修改对象的属性。

(7)、对象浏览器
可以查看当前设计阶段的所有GUI对象及其组织关系。

三、GUI控件

除去菜单外,所有常用的对象均在GUI 对象选择区可以看到一共14个,包括
(1)、uicontrol对象:push button, slider, radio button, check box, edit text, static text, Pop-up menu, listbox, toggle button,
(2)、UI对象:panel, button group
(3)、数据可是化处理:table,axes
(4)、界面美观:activeX control

控件的主要属性包括:
a、控件风格和外观
(1)BackgroundColor:设置控件背景颜色,
(2)CData:在控件上显示的真彩色图像。
(3)ForegroundColor:文本颜色。
(4)String属性:控件上的文本。
(5)Visible:控件是否可见。

b、对象的常规信息
(1)Enable属性: 表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。
(2)Style:控件对象类型。
(3)Tag:控件表示(用户定义)。
(4)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。
(5)UserData:用户指定数据。
(6)Position:控件对象的尺寸和位置。
(7)Units:设置控件的位置及大小的单位
(8)有关字体的属性,如 FontAngle, FontName等。

c、控件回调函数的执行
(1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。
(2)ButtonDownFcn属性:按钮按下时的处理函数。
(3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。
(4)CreateFcn:在对象产生过程中执行的回调函数。
(5)DeleteFcn:删除对象过程中执行的回调函数。
(6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。

d、控件当前状态信息
(1)ListboxTop:在列表框中显示的最顶层的字符串的索引。
(2)Max:最大值。
(3)Min:最小值。
(4)Value:控件的当前值。

四、回调函数

在控件上右键,选择CALLBACK,可以看到不同的函数,单击选择,会自动跳转到M文件下,GUIDE会自动生成 相应的函数体,函数名,名称一般是 控件 Tag+ Call类型名 参数有三个 ( hObject, eventdata, handles)

其中 hObject 为当前对象的句柄,eventdata为附加数据结构,handles为所有对象的句柄。

CreateFcn 是在控件对象创建的时候发生(一般为初始化样式,颜色,初始值等)
DeleteFcn 实在空间对象被清除的时候发生
ButtonDownFcn和KeyPressFcn分别为鼠标点击和按键事件
CallBack为一般回调函数,因不同的控件而已异。例如按钮被按下时发生,下拉框改变值时发生,sliderbar 拖动时发生等等。

参考:

1、罗华飞,MATLAB GUI 设计学习手记(第三版),2014.08
2、http://blog.csdn.net/u012374012/article/details/42582757

你可能感兴趣的:(Matlab,界面设计,matlab,gui)